본문 바로가기

반응형

코딩

(89)
[Python] 백준 1550 16진수 코드 작성 print(int(input(), 16)) https://www.acmicpc.net/problem/1550 1550번: 16진수 첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다. www.acmicpc.net
[Python] 백준 15990 1,2,3더하기5 https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 코드 작성 dp = [[0 for _ in range(3)] for _ in range(100001)] dp[1] = [1,0,0] dp[2] = [0,1,0] dp[3] = [1,1,1] mod = 1000000009 for i in range(4, 100001): dp[i][0] = (dp[i-1][1] + dp[i-1][2])%mod dp[i][1] = (dp[i-2][0] + dp[i-2][2])%mod dp[i][2] = (dp[i-3][..
[Python] 백준 4344 평균은 넘겠지 코드 작성 n = int(input()) for _ in range(n): k = list(map(int, input().split())) avg = sum(k[1:])/k[0] cnt = 0 for i in k[1:]: if i > avg: cnt += 1 rate = cnt/k[0] * 100 print(f'{rate:.3f}%') 코드 풀이 n = int(input()) for _ in range(n): k = list(map(int, input().split())) avg = sum(k[1:])/k[0] # (리스트 k중에서 인덱스 1부터의 합)/(k의 인덱스 0) cnt = 0 for i in k[1:]: #평균보다 큰 값을 찾아야 하는데 k[0]은 제외 if i > avg: #평균보다 넘을 경..
[Python] 백준 11052, 16194 카드구매하기 1, 2 코드 작성 n = int(input()) k = [0] + list(map(int, input().split())) #2 for i in range(1, n+1): for j in range(1, i+1): k[i] = max(k[i], k[i-j] + k[j]) #1 print(k[n]) 코드 풀이 #1 주어진 카드를 n개라고 했을 때 제일 마지막 카드는 n번째 카드라고 할 수 있으며, i번째 카드라고도 할 수 있다. 그렇다면 i번째를 제외한 카드는 n-1개의 카드라고 할 수 있을 것이다. 구하려는 값은 n번재의 최소값이므로 k[i] = max(k[i], k[i-j] + k[j]) 라고 작성할 수 있을 것이다. #2 카드 값은 첫 번재부터 시작하고 파이썬의 인덱스는 0부터 시작하기 때문에 초기값을 넣었..
[Python] 백준 10844 쉬운계단수 코드 작성 dp = [[0 for _ in range(10)] for _ in range(10001)] for i in range(1,10): dp[1][i] = 1 n = int(input()) for i in range(2, n+1): for j in range(10): if j == 0: dp[i][j] = dp[i-1][1] elif j == 9: dp[i][j] = dp[i-1][8] else: dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1] print(sum(dp[n])%1000000000) 코드 풀이 #1 문제 이해 첫 자리수가 n일 경우 그 다음 자리 수는 n+1 또는 n-1이 나올 수 있다. 각 dp의 자리수를 0으로 세팅하고 초기값 1의 자리 수를 세팅한다 dp[1..
[Python] 백준 9095 1,2,3더하기 https://www.acmicpc.net/problem/9095 코드 작성 k = int(input()) for _ in range(k): d = [0, 1, 2, 4] n = int(input()) for i in range(4, n+1): d.append(d[i-1]+d[i-2]+d[i-3]) print(d[n]) 코드 풀이 #1 이 문제는 다이나믹 프로그래밍으로 과거에 했던 연산을 누적하면서 수행해 나가는 문제이다. 우선 (1) 0을 1,2,3으로 표현하는 방법은 0가지 (2) 1을 1,2,3으로 표현하는 방법은 ’1‘ 1가지 (3) 2를 1,2,3으로 표현하는 방법은 ’1,1‘ ’2‘ 2가지 (4) 3을 1,2,3으로 표현하는 방법은 ’1,1,1‘ ’2,1‘, ’1,2‘, ’3‘ 4가지 (5) ..
[Python] 백준 8958 OX퀴즈 코드 작성 n = int(input()) for _ in range(n): k = list(input()) cnt = 0 sum = 0 for i in k: if i == 'O': cnt += 1 #cnt = cnt + 1 sum += cnt #sum = sum + cnt else: cnt = 0 print(sum) 코드 풀이 #1 반복하는 값 n을 입력받고 for문을 이용하여 n번 반복한다. ox에 각각 해당하는 리스트 k를 입력받고 카운트(cnt)와 총 합계(sum)를 각각 0으로 설정한다. k의 리스트를 for문으로 이용하는데, 'O'이면 cnt를 1 씩 증가시키고 그 값을 sum에 넣는다. 'X'이면(else) cnt 를 다시 0으로 세팅한다. 그리고 for문이 완성되었을 때 sum값을 출력한다.
[Python] 백준 1546 평균 코드 작성 n = int(input()) k = list(map(int, input().split())) m = max(k) new = [] for i in k: new.append(i/m*100) print(sum(new)/len(new)) #또는 print(sum(new)/n) 가능 코드 풀이 (1) 입력 n(표본의 수)의 값 입력, k(그 리스트 값)입력 (2) k의 리스트 중 max(최대값) 입력 (3) 새로운 값 입력하기 for문을 k의 순서대로 돌리는데, (k / 최대값)을 새로운 리스트(new)에 하나씩 넣어준다. (4)그리고 평균값을 출력한다.

반응형