본문 바로가기

반응형

코딩/Python

(75)
[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)그리고 평균값을 출력한다.
[Python] 백준 3052 나머지 코드 작성 ans = [] for i in range(10): n = int(input()) ans.append(n%42) print(len(set(ans))) 코드 풀이 #1. (1) 수를 입력한다. (2) 42의 나눈 나머지를 ans의 배열에 추가(append)한다. (3) 10번을 반복하고 (4) ans의 중복값을 제거(set)하여 길이를 제고(len) 출력(print)한다.
[Python] 백준 17087 숨바꼭질 6 코드 작성 import math n,s = map(int,input().split()) k = list(map(int,input().split())) d = [] for i in k: d.append(abs(i-s)) ans = d[0] for i in d: ans = math.gcd(i,ans) print(ans) 코드 풀이 #0. 문제 풀이 이 문제는 수빈이의 위치 점 s부터 동생들의 위치 k에 대해 각각의 최대공약수d를 구하는 문제이다. 즉, (s-k[0]), (s-k[1]), (s-k[2]) 등 에 대해서 최대공약수를 구하는 문제이다. #1. 거리를 d리스트에 입력 n(동생의 수), s(수빈이의 위치), 동생 위치(k)값을 입력받고 각각의 위치를 저장할 d의 리스트를 만든다. 각각의 위치 거리 차..
[Python] 이스케이프 코드 이스케이프 코드는 프로그래밍을 할 때 미리 정의하여 간편한 약어로 사용할 수 있도록 한 문자 조합 백스페이스'\'와 조합하여 사용한다. 키보드에서 엔더 위에 ₩가 같은 기능을 한다. \n : 문자열 안에서 줄 바꿈(₩n) \t : 문자열 사이에 탭 간격(₩t) \\ : 문자 안에 \를 사용할 때(₩₩) \' : 작은따옴표(')를 사용할 때(₩') \" : 큰따옴표(")를 사용할 때(₩")
[Python] 백준 1463 1로만들기 코드 작성 n = int(input()) d = [0] * (n + 1) for i in range(2, n + 1): d[i] = d[i - 1] + 1 if i % 3 == 0: d[i] = min(d[i], d[i // 3] + 1) if i % 2 == 0: d[i] = min(d[i], d[i // 2] + 1) print(d[n]) 문제 풀이 다이나믹 프레그래밍은 전에 했던 루트를 다시 반복하고 새로운 명령어에 한가지 방법을 추가한다. 숫자 10은 3으로 나누어 떨어지지 않기 때문에 10 > 5 > 4 > 2 > 1 순서로(4번) 생각해 볼 수 있지만, 10 > 9 > 3 > 1의 순서로(3번) 나타낼 수 있다. 마찬가지로 9의 값은 9 > 3 > 1로 표현(2번)되며 3의 값은 3 > 1로 ..
[Python] 10808 알파벳 개수 n = input() lst = [0]*26 for i in n: lst[ord(i)-97] += 1 #a~z의 아스키코드는 97~122 for i in lst: print(i, end=' ')

반응형