[Coding Test]/[백준]
[백준] 3085 파이썬(python) : 사탕 게임
https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net n = int(input()) graph = [ list(input()) for _ in range(n) ] answer = 0 def count(graph): max_value = 1 for i in range(n): cnt = 1 for j in range(1, n): if graph[i][j] == graph[i][j-1]: #5 cnt += 1 else: cnt = 1 max_value = max(max_value, cnt) cnt = 1 for j in range(1, n): if graph[j][i] =..
[백준] 2309 파이썬(python) : 일곱 난쟁이
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net import sys height = [ int(sys.stdin.readline()) for _ in range(9)] total = sum(height) for i in range(9): for j in range(i+1, 9): if 100 == total - (height[i]+height[j]): #1 num1 = height[i] #2 num2 = height[j] height.remove(num..
[백준] 5430 파이썬(python) : AC - (★)
https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 입력 받는 숫자가 [1,2,3,4] 이런 식으로 받기 때문에 처리가 까다롭다. 그리고 함수 R을 사용할때 R이 나올때마다 역순으로 뒤집기를 하면 시간초과에 걸리게 되므로 여러번 사용할 수 없다. import sys from collections import deque t = int(sys.stdin.readline()) #1 for _ in range(t): p = sys.stdin.readline().rstrip() #2 n = int(sys.stdi..
[백준] 1021 파이썬(python) : 회전하는 큐
https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 입력값 n을 받으면 1~n까지 있는 리스트에서 입력받은 숫자들 빼주는데 왼쪽에서만 뺄 수 있고(1번 연산) 왼쪽으로 넘기거나(3번 연산) 오른쪽으로 넘기면서(2번 연산) 2, 3번 연산의 횟수를 세어주어야 한다. 즉 n = 10이면 1, 2, 3, 4, 5, 6, 7, 8, 9, 10이 있는 리스트에서 입력 받은 2 9 5를 빼주기 위해 몇번은 2, 3번 연산을 해주어야 하느냐이다. 2를 빼주..
[백준] 10844 파이썬(python) : 쉬운 계단 수
https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net dp테이블을 2차원으로 설정해서 "dp[자리 수][현재 위치] = 앞자리에 올 수 있는 숫자 개수"로 지정한다. 맨 앞자리의 0이 오는 경우는 올 수 없으므로 0으로 설정하고 n=1일때(자리 수 1일때)의 1~9의 숫자는 모두 1이 된다. 두번째 자리 부터는 숫자 0은 앞 자리에 1만 올 수 있고 숫자 9는 앞자리에 8만 올 수 있다. 그래서 다른 경우들과 다르게 2가지는 따로 분류를 해준다. import sys n = int(sys.stdin.readline()) dp = [[0]*10 for _ in ran..
[백준] 1463 파이썬(python) : 1로 만들기
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net import sys n = int(sys.stdin.readline()) dp = [0]*1000001 for i in range(2, n+1): dp[i] = dp[i-1] + 1 if i % 2 == 0: dp[i] = min(dp[i], dp[i//2]+1) if i % 3 == 0: dp[i] = min(dp[i], dp[i//3]+1) print(dp[n]) https://hgk5722.tistory.com/4 1로 만들기(p.217) - 다이나믹 프로그래밍(이코테) 해설 부분은 책의 내용을 포함하고,..