Coding Test/baekjoon 113

[백준 3425] 고스택- 자바(solved.ac - 골드 4)

https://www.acmicpc.net/problem/3425 3425번: 고스택 각각의 입력값에 대해서, 해당하는 프로그램을 수행한 뒤, 출력값을 출력하면 된다. 출력값이란 스택에 저장되어 있는 숫자이다. 만약, 프로그램 에러가 발생하거나, 모든 수행이 종료됐을 때 www.acmicpc.net 풀이 문제를 보았을 때 알 수 있는 힌트 고스택이라는 10가지의 조건을 잘 맞춰서 문제를 풀면 되는 문제이다. 여기에서 핵심은 ERROR를 어떻게 발견하고 추출하냐 문제인듯하다. 합이 10의 9승을 넘어가는 경우 0으로 나누는 경우 합칠것이 2개 이상이 아닌경우 추가할경우 1개이상이 아닌 경우 마지막에 리스트가 1개 이상인 경우 이렇게만 잘 조심해서 문제를 풀면 쉽게 풀수 있는 문제이다. import java..

[백준 3055] 게임- 탈출(solved.ac - 골드 4)

https://www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 풀이 문제를 보았을 때 알 수 있는 힌트 간단한 BFS문제에 홍수가 추가된 문제이다. 처음에는 어떻게 접근을 해야하는지 조차 이해를 못해서 다른사람들이 코드를 보았다. 다른 사람들의 코드를 보니 홍수를 한번 움직이고 이후 고슴도치를 움직이게 하며, 그때 고슴도치 움직인 위치는 홍수가 와도 결국에 움직일수 있기에 무시하는 형식으로 코드가 작성되어있었다. 나역시 이를 참고하여 문제를 풀었다. import java..

[백준 1713] 게임- 후보 추천하기(solved.ac - 실버 1)

https://www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net 풀이 문제를 보았을 때 알 수 있는 힌트 오랜만에 다시 문제를 풀다보니 구현 문제를 풀어보게 되었다. 조건을 맞춰서 잘 구현만 하면 통과할 수 있는 문제이다. 1. 먼저 학생들을 사진 틀에 다 넣어둔다. 2. 다 넣었다면 추천 횟수가 적은 학생을 삭제하고 그 자리에 추가하면 된다. 그러나 횟수가 같은 경우, 가장 오래된 사진을 삭제하면 된다. 이를 위해서 구조체를 하나 만들어서 문제를 해..

[백준 1103] 게임- 자바(solved.ac - 골드 2)

https://www.acmicpc.net/problem/1103 1103번: 게임 줄에 보드의 세로 크기 N과 가로 크기 M이 주어진다. 이 값은 모두 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 보드의 상태가 주어진다. 쓰여 있는 숫자는 1부터 9까지의 자연수 또는 www.acmicpc.net 풀이 문제를 보았을 때 알 수 있는 힌트 문제를 가볍게 생각하고 푼다면 dfs로 풀면 되겠다는 생각을 하게 된다. 하지만 여기서 함정은 다시 돌아 올수있다는 점과 다른곳에서 돌아와 위치를 더 빠르게 오는 경우도 있다. 이를 해결하기 위해서 DP를 활용하면 시간초과를 해결할 수 있다. import java.io.BufferedReader; import java.io.IOException; impor..

[백준 1059] 좋은 구간- python (solved.ac - 실버 4)

https://www.acmicpc.net/problem/1059 1059번: 좋은 구간 [9, 10], [9, 11], [9, 12], [10, 11], [10, 12] www.acmicpc.net 풀이 문제를 보았을 때 알 수 있는 힌트 n이 포함될수 있는 좋은 구간을 전부 다! 찾는 문제이다. 단순하게 브루트포스로 풀수있겠다 싶은 문제였다. 그렇기 위해서는 먼저 집합으로 정해진 구간을 정렬해 준다. 이후 n이 포함 되는 구간을 찾는다. 여기서 포함 되는 구간이 끝인 경우와 처음인 경우가 있기에 이를 고려해줘야한다. 안그러면 틀리는 경우가 있을 것이다. 구간을 찾았다면 n을 포함 할 수 있는 모든 경우의 수를 2중 반복문으로 돌려보면 된다. import sys input = sys.stdin.read..

[백준 15486] 퇴사 2- java (solved.ac - 골드 5)

https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net 풀이 문제를 보았을 때 알 수 있는 힌트 일자와 금액이 담아 있는 리스트를 만들고 뒤에서 부터 계산하는 식으로 풀면 쉽게 풀 수 있다. 먼저 값을 초과하는 것을 0으로 변경 시키는 작업을 해주었다. 굳이 안해도 될 수 있지만 오류가 날수 있을것이라고 판단하여 없애주었다. 이후 뒤에서부터 현재값+이후 시간 값과 이전 값을 비교해서 큰값을 현재 값에 넣어 주면서 진행하면..

[백준 20057] 마법사 상어와 토네이도- java (solved.ac - 골드 3)

https://www.acmicpc.net/problem/20057 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net 풀이 문제를 보았을 때 알 수 있는 힌트 두가지 조건을 고려해서 문제를 풀면된다. 처음에 전체 모레의 양을 계산한다. 가운데 칸부터 토네이도 형식으로 이동한다. 이동할때 주변에 모래를 뿌려주면서 이동한다. 이후 안에 남은 모레를 계산해서 전체 모레를 빼고 남은 값이 답이 된다. 2번과 3번 각자 구현하고 합치면 된다. 2번 조건 : 토네이도 형식은 좌하우상 순으로 ..

[백준 1715] 카드 정렬하기- java (solved.ac - 골드 4)

https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 풀이 문제를 보았을 때 알 수 있는 힌트 문제를 보았을때 핵심으로 보아야할 것이 몇가지가 존재한다. 1. 정렬된 두 묶음의 숫자 카드가 존재함. 2. 두 묶음을 합치면 한 묶음이 되는데 두 묶음의 합이 된다. 3. 이렇게 여러개의 묶음을 합치면 합의 증가하게 된다. 4. 이때 최소한 몇 번의 비교가 필요한지 구하여라. 간단하게 접근하면 최소인 값 두개를 묶고 정렬을 하고 다시 최소인..

[백준 2512] 예산- java (solved.ac - 실버 3)

https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 풀이 문제를 보았을 때 알 수 있는 힌트 문제를 보면 예산을 분배하는데 최대로 분배하는 방법을 구하는 문제이다. 2가지 조건을 고려해서 계산을 진행해야한다. 1. 모든 요청이 배정될 수 있는 경우에는 요청한 금액을 그래도 배정한다. 2. 모든 요청이 배정될 수 없는 경우에는 특정한 정수 상한액을 계산하여 그 이상인 예산 요청에는 모두 상한액을 배정한다. 상한액 이하의 예산 요청에 대해서는 요..

[백준 20055] 컨베이어 벨트 위의 로봇- java (solved.ac - 골드 5)

https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 풀이 문제를 보았을 때 알 수 있는 힌트 이러한 구현 문제는 완벽하게 구현만 하면 된다. 그전에 설계를 위해 조건을 잘 찾고 어떤 자료형을 쓸 것 인지 잘 파악하는 것도 중요하다. 처음에 문제를 읽고 이해하는데 시간이 많이 걸렸다. 하지만 조건은 간단하였다. 벨트와 로봇이 있고 벨트는 해번 한번 움직이고 로봇을 위에 올라가서 앞으로 전진할수있다는 것! 이제 조건을 정리 하였다..

728x90