본문 바로가기

반응형

전체 글

(239)
[Python] 백준 1107 리모컨 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 코드 작성 cha = int(input()) #channel m = int(input()) ans = abs(100-cha) if m : bttn = set(input().split()) #button else: bttn = set() for num in range(1000001): for i in str(num): if i in bttn: break: else: ans = min..
[Python] 백준 3085 사탕 게임 https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 코드 작성 n = int(input()) arr = [] for i in range(n): arr.append(list(input())) maxcnt = 0 def check(): global maxcnt for i in range(n): cnt = 1 for j in range(n-1): if arr[i][j] == arr[i][j+1]: cnt += 1 maxcnt = max(maxcnt, cnt) else: cnt = 1 cnt = 1 for j in range(n-1): if arr[j][i] == arr[..
[Python] 백준 2133 타일 채우기 https://www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 코드 작성 n = int(input()) dp = [0]*31 dp[0] = 1 for i in range(2, n+1, 2): dp[i] = dp[i-2]*3 for j in range(0, i-2, 2): dp[i] += dp[j]*2 print(dp[n]) 코드 풀이 #1 예시 dp[10] = dp[8] * 3 + dp[6] * 2 + dp[4] * 2 + dp[2] * 2 + 2
[Python] 백준 11057 오르막수 11057번: 오르막 수 (acmicpc.net) 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net 처음 문제를 이해하고 완전이 내 것으로 만들기까지 10일이 걸렸다. 사실 10일 정도면 양호한 숫자인 듯 하다. 초반에 20일 넘겨도 다음날 되면 매번 잊어버리는 문제가 수두룩 하였으니.. 참고로 나는 아이디를 2개 사용한다. 처음에 이해한 코딩을 저장용으로 쓰고, 본 아이디는 틀린문제 보기에서 집중적으로 본다. 그날 풀지 못하면 이해하고 다음날 또 푼다. 또 풀지 못하면 이해하..
[Python] 백준 11055 가장 큰 증가 부분 수열 https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 코드 작성 dp = [0] * 1001 n = int(input()) arr = list(map(int, input().split())) dp[0] = arr[0] for i in range(n): for j in range(i): if arr[i] > arr[j]: dp[i] = max(dp[i], dp[j] + arr[i]) else:..
[Python] 백준 2309 일곱 난쟁이 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 코드 작성 arr = [] for _ in range(9): arr.append(int(input())) arr.sort() for i in range(9): for j in range(i+1, 9): if sum(arr)-arr[i]-arr[j] == 100: for k in range(9): if k == i or k == j: continue else: print(arr[k]) exit() 코드 풀이..
[Python] 백준 2225 합분해 https://www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 코드 작성 n, k = map(int, input().split()) dp = [[0]*201 for _ in range(201)] for i in range(201): dp[1][i] = 1 for i in range(2, 201): dp[i][1] = i for j in range(2, 201): dp[i][j] = dp[i-1][j] + dp[i][j-1] print(dp[k][n] % 1000000000) 코드 풀이 #1 초기값 k = 1일 때, 즉 1자리수 일 때 N은 그 자신의 수만 될 수 있으므로 1이 된다. ..
[Python] 백준 1476 날짜 계산 1476번: 날짜 계산 (acmicpc.net) 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 코드 작성 a,b,c = map(int, input().split()) cnt = 0 while True: if a == 0 and b == 0 and c ==0: break if a == 0: a = 15 if b == 0: b = 28 if c == 0: c = 19 a -= 1 b -= 1 c -= 1 cnt += 1 print(cnt)

반응형