목록CodingTest (432)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nZe0S/btrSBnI3Mbj/4tUcaWgX9oMC8lUz9Q96j1/img.png)
👉 문제링크 4158번: CD 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 상근이가 가지고 있는 CD의 수 N, 선영이가 가지고 있는 CD의 수 M이 주어진다. N과 M은 최대 백만이다. 다음 줄 www.acmicpc.net 🔸 문제 분석 🔸 n과 m이 입력되면 n개의 수와 m개의 수가 입력되고 겹치는 숫자의 개수를 출력한다. 오름차순 정렬된 수가 입력되므로 투 포인터 알고리즘을 사용해 풀이한다. 0 0이 입력 될 때까지 반복한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; import ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dDzq7c/btrSCrqBNha/9g9zn8a0MNNfcxaRtpzPLK/img.png)
👉 문제링크 3447번: 버그왕 입력은 여러 줄의 소스 코드로 이루어져 있다. 이 소스 코드는 백준이가 작성한 버그를 찾는 프로그램으로 이미 처리가 되어있다. 각 줄은 100글자 이내이고, 입력은 파일이 끝날 때 끝난다. 줄의 www.acmicpc.net 🔸 문제 분석 🔸 EOF가 입력될 때 까지 문자열을 입력받아 "BUG" 문자열이 포함되지 않도록 제거한 뒤 출력한다. "BUG"를 제거한 뒤 다시 "BUG"가 생겨도 제거해야한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] a..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Povhz/btrSxkGEkBc/ogbIZ2khzqBw4BGKvSvJx1/img.png)
👉 문제링크 2520번: 팬케이크 사랑 첫 번째 테스트 케이스에서 주어진 재료를 가지고 바나나 팬케익 10개, 딸기 팬케익 1개, 초콜릿 팬케익 4개, 호두 팬케익 1개를 만들 수 있다. 두 번째 테스트 케이스에서 주어진 재료 중 밀 www.acmicpc.net 🔸 문제 분석 🔸 반죽 재료로 만들 수 있는 반죽의 최대값을 구하고, 토핑 재료로 만들 수 있는 케잌의 최대값을 구해 비교해서 더 작은값을 출력한다. 반죽의 재료는 일부만 넣은 배율값으로도 가능하므로 float형으로 계산한다.(힌트2번) 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.S..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bBus3O/btrSySvStqQ/US52MwVfrde3rwpH8OZ3a1/img.png)
👉 문제링크 2057번: 팩토리얼 분해 음 아닌 정수 N이 주어졌을 때, 이 수를 서로 다른 정수 M(M ≥ 1)개의 팩토리얼의 합으로 나타낼 수 있는지 알아내는 프로그램을 작성하시오. 예를 들어 2=0!+1!로 나타낼 수 있지만, 5는 이와 같은 www.acmicpc.net 🔸 문제 분석 🔸 팩토리얼의 조합으로 n을 만들 수 있는지 판단한다. n보다 작은 팩토리얼을 큰 수부터 n을 빼며 0을 만들 수 있는지 확인한다(그리디) 🔸 코드 🔸 fact = [0] * 20 fact[0] = 1 for i in range(1, 20): fact[i] = fact[i-1] * i n = int(input()) if n == 0: print("NO") else: for i in range(19, -1, -1): i..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Bje7p/btrSw5vXhEj/QHUd3DXPpGKivYugNKZrvK/img.png)
👉 문제링크 2999번: 비밀 이메일 정인이는 원래 "bombonisuuladici"를 보내려고 했다. 이 메시지는 16글자이므로, 정인이는 1*16, 2*8, 4*4 행렬을 선택할 수 있다. R이 가장 큰 것은 4*4이므로, 4*4를 선택한다. 정인이가 만든 행렬은 다음과 www.acmicpc.net 🔸 문제 분석 🔸 문자열을 입력받으면 행렬이 가능한 정사각형에 가깝고, 행의 개수가 열의 개수보다 작거나 같은 형태로 변환한다. 행렬에 왼쪽 열부터 세로 방향으로 쓰고, 첫 행부터 가로 방향으로 읽어 출력한다. 🔸 코드 🔸 s = input() r = 0 c = 0 for i in range(1, len(s)//2 + 1): if len(s) % i == 0 and i