본문 바로가기

반응형

전체 글

(239)
[Python] 백준 2475 검증수 https://www.acmicpc.net/problem/2475 2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net 코드 작성 k = list(map(int, input().split())) sum = 0 for i in range(5): sum += k[i]*k[i] print(sum%10)
[Python] 백준 11053 가장 긴 증가하는 부분 코드 작성 n = int(input()) dp = [1 for _ in range(1001)] arr = list(map(int, input().split())) for i in range(n): for j in range(i): if arr[i] > arr[j]: dp[i] = max(dp[i], dp[j] + 1) print(max(dp)) 코드 풀이 # 문제풀이1 dp 테이블에는 모든 값을 1로 세팅한다. arr = [10, 20, 10, 30, 20, 50] 예를 들어, dp[3]을 구하기 위해서는 for 구문에서 i = 3, j = 0 일 때 dp[3] = max(dp[3], dp[0] + 1) 임에 따라 2가 된다 i = 3, j = 1 일 때 dp[3] = max(dp[3], dp[1] + ..
[Python] 백준 2798 블랙잭 코드 작성 n,m = map(int, input().split()) arr = list(map(int, input().split())) ans = 0 for i in range(n): for j in range(i+1, n): for k in range(j+1, n): if arr[i] + arr[j] + arr[k] > m: continue else: ans = max(ans, arr[i] + arr[j] + arr[k]) print(ans) 코드 풀이 #1. 3개의 수를 비교해야 하므로 for문을 3개 사용한다. 이때 주의해야 할 점이 범위!!! arr의 리스트 중에서 첫 번째 수 i는 인덱스 0부터 n-1이다. 그럼 두 번째 수 j는 i+1부터 시작하며, 세 번째수 k는 j+1부터 시작한다. #2...
[Python] 백준 2231 분해합 코드 작성 n = int(input()) ans = 0 for i in range(1, n+1): k = i +sum(map(int, str(i))) if k == n: ans = i break print(ans) 코드 풀이 #설명 n은 자연수이므로 range의 범위 (1, n+1)로 설정한다. 2이상의 자리수의 각 문자열(str)을 map, int로 받아서 더한다. 그 값 k가 초기값 n일 때 ans에 정답을 넣는다. 가장 작은 숫자를 구하는 문제이므로 i는 1부터 시작하되, 생성자를 구했을 경우 for문을 종료해야 하므로 break
[Python] 백준 7568 덩치 코드 작성 n = int(input()) arr = [ ] for _ in range(n): x, y = map(int, input().split()) arr.append([x,y]) for i in arr: rank = 1 for j in arr: if i[0] < j[0] and i[1] < j[1]: rank += 1 print(rank, end = ' ') 코드 풀이 #. 몸무게와 키를 리스트(arr)에 넣는데, arr = [[x0, y0], [x1,y1], [x2,y2]...] 이와 같은 방식으로 넣는다. rank를 1로 기록하고 i가 0일때 j가 0,1,2,3,4와 비교하고 rank를 1씩 증가시키고 rank를 출력한다. 마찬가지로 i가 1일때 j가 0,1,2,3,4와 비교한다.
[Python] 백준 1912 연속합 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 작성 n = int(input()) k = list(map(int, input().split())) ans = [k[0]] for i in range(1,n): ans.append(max(ans[i-1]+k[i],k[i])) print(max(ans)) 코드 풀이 #문제 이해 인덱스 0부터 i까지의 합이 큰 지, 또는 i의 값이 큰 지를 비교하는 문제이다. 물론 문제에서는 중간 값 중에서 여러 개를 요..
[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][..

반응형