본문 바로가기

반응형

코딩

(89)
[Python] 백준 15667 15667번: 2018 연세대학교 프로그래밍 경진대회 (acmicpc.net) 15667번: 2018 연세대학교 프로그래밍 경진대회 2015, 2016, 2017년에 이어 올해도 연세대학교 컴퓨터과학과 프로그래밍 경진대회가 열린다. 도현이는 4년 연속 교내대회가 개최된다는 것에 감격하여, 사비를 털 각오로 화려한 개막식을 준비했다. www.acmicpc.net 코드 작성 k = int(input()) for i in range(1, k+1): if 1 + i + i**2 == k: print(i) break
[Python] 백준 10972 다음순열 https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 코드 작성 n = int(input()) arr = list(map(int, input().split())) for i in range(n-1, 0, -1): if arr[i] > arr[i-1]: for j in range(n-1, 0, -1): if arr[i-1] < arr[j]: arr[i-1] , arr[j] = arr[j], arr[i-1] arr = arr[:i] + sorted(arr[i:]) print(*arr) exit(0) print(-..
[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() 코드 풀이..

반응형