BOJ 6

[백준온라인저지/BOJ] 2775번 부녀회장이 될테야

문제 풀이 해당 아파트 호수당 거주 인원을 표로 나타내면 다음과 같다. 해당 표를 통해 k층 n호에 거주하는 인원을 파악할 수 있는 규칙을 알 수 있다. K층 N호 = K층 (N-1)호의 인원 + (K-1)층 N호의 인원 인 것을 알 수 있다. 0층은 호수대로 거주하고, 모든 층의 1호는 1명만 거주하므로 위 법칙을 이용하여 K층 N호의 거주 인원을 구할 수 있다. 따라서 이를 코드로 구현하면 다음과 같다. import java.util.Scanner; public class Main { public static void main(String args[]){ Scanner scanner = new Scanner(System.in); int T; T = scanner.nextInt(); int[] k = ..

BOJ 2022.01.27

[백준온라인저지/BOJ] 10250번 ACM 호텔

문제 풀이 층이랑 호수를 자꾸 헷갈려서 오래 걸린 문제이다. H = 호텔의 층수 W = 호텔의 한 층당 호수 N = N번째 손님 일때, 경우의 수는 총 3가지이다. 1) H와 N이 같거나 H가 N보다 더 클 경우. 호수는 무조건 1호로 고정된다. 2) N%H가 0일 경우. 층수에 맞게 들어오므로 H층 N/H호에 들어오게 된다. 3)그 외(N이 H보다 큰 경우) N%H 층 N/H호에 들어오게 된다. 그리고 만약 호수가 1자리 수라면 호수 앞에 0이 붙어야 한다. ex) 12층 4호인 경우 1204 따라서 이를 코드로 구현하면 다음과 같다. import java.util.Scanner; public class Main { public static void main(String args[]){ Scanner ..

BOJ 2022.01.26

[백준온라인저지/BOJ] 2869번 달팽이는 올라가고 싶다

문제 풀이 낮에는 A미터를 올라가고, 밤에는 B미터를 미끄러지므로, 하루에 올라가는 높이는 A-B 미터이다. 단, 정상에 도달할 경우엔 미끄러지지 않으므로 올라가야할 총 높이는 V-B 미터라고 할 수 있다. 따라서 총 높이/하루당 올라가는 높이 를 구해 올림처리 해주면 며칠이 걸리는 지 알 수 있다. 코드로 구현하면 다음과 같다. import java.util.Scanner; public class Main { public static void main(String args[]){ Scanner scanner = new Scanner(System.in); int A,B,V, day; double totalMoveMeter, dayPerMove; A = scanner.nextInt(); B = scanne..

BOJ 2022.01.25

[백준온라인저지/BOJ] 1193번 분수찾기

문제 풀이 필자의 경우 분수의 규칙을 찾아 문제를 해결했다. 첫 번째로 주목해야 할 부분은 첫 번째 열이다. 첫 번째 열의 인덱스를 나열하면 1, 3, 4, 10, 11 인데, 증가하는 값을 보면 2, 1, 6, 1, 10, 1... 순으로 값이 증가함을 알 수 있다. 2부터 짝수번째 차례엔 이전 짝수번째 증가값에 4를 더한 값이, 홀수번째 차례엔 1씩 증가함을 알 수 있다. 두 번째로 주목해야 할 부분은 첫 번째 열 인덱스의 수 증감패턴이다. 1이 증가한 홀수번째 차례 이후에는 인덱스가 대각선으로 1씩 증가하고, 4가 증가한 짝수번째 차례 이후에는 인덱스가 대각선으로 1씩 감소함을 알 수 있다. ex) 인덱스가 3일 경우, 홀수번째 차례이기 때문에 1 증가. 인덱스는 4가 되고 대각선으로 1씩 증가하여..

BOJ 2022.01.25

[백준온라인저지/BOJ] 2292번 벌집

문제 풀이 핵심은 벌집의 규칙이다. 방을 지나가는 수를 Depth라고 가정. 0~1 -> Depth = 1 2~7 -> Depth = 2 8~19 -> Depth = 3 20~37 -> Depth = 4 ... 범위의 끝 숫자를 이어보면 1, 7, 18, 37, 61... 이며 6, 12, 18, 24... 만큼 값이 증가함을 알 수 있다. 따라서 6씩 증가하는 addNum 값을 더해주고, 더할 때마다 cnt 값을 증가시키면 Depth를 구할 수 있다. 단, 시작과 끝을 포함하므로 cnt는 1부터 시작한다. import java.util.Scanner; public class Main { public static void main(String args[]){ Scanner scanner = new Sca..

BOJ 2022.01.25

[백준온라인저지/BOJ] 1712번 손익분기점

문제 풀이 A = 원금 B = 물건 생산 비용 C = 물건 판매 비용 문제의 핵심은 물건판매 순이익으로 원금을 메꾸는 것이다. 순이익 = 물건 판매 비용 - 물건 생산 비용 = C - B 원금 = A 따라서 원금을 순이익으로 나눈 몫에 1을 더해주면 해당 값이 손익분기점을 넘어선 값이 된다. -> (A/(C-B)) + 1 만약, 물건 판매 비용보다 물건 생산 비용이 더 크거나 같을 경우, 이익을 낼 수 없으므로 -1을 출력한다. -> C

BOJ 2022.01.25