백준 알고리즘 20

(Python/파이썬) 백준 2822번 - 점수 계산

문제출처: https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net 1. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 score = [int(input())for _ in range(8)] #내림차순 정렬 score_ = sorted(score, reverse=True) #다섯번째 큰 수 까지 더해줌 total = sum(score_[:5]) index=[] for i in range(5): index.append(sco..

(Python/파이썬) 백준 11656번 - 접미사 배열

문제출처: https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 1. 코드 1 2 3 4 5 6 7 8 9 s = input() arr =[] for i in range(len(s)): arr.append(s[i:]) arr.sort() for i in arr: print(i) cs 2. 해결과정 문자열 s를 입력 받고, 접미사를 저장할 배열 arr을 만들어준다. for문을 돌면서 s[0:],s[1:]... 순으로 arr에 추가해준다. 오름차순으로 정렬하고, for문을 통해 정렬된 arr를 출력해주면 된다. 3. 느낀점 문자열 ..

(Python/파이썬) 백준 2959번 - 거북이

문제출처:https://www.acmicpc.net/problem/2959 2959번: 거북이 첫째 줄에 거북이가 생각한 네 양의 정수 A, B, C, D가 주어진다. (0 < A, B, C, D < 100) www.acmicpc.net 1. 코드 1 2 3 4 s = list(map(int, input().split())) s.sort() print(s[0]*s[2]) cs 2. 해결과정 네 개의 수 중에서 두번째로 큰 수 * 가장 작은 수를 사용하면 제일 큰 직사각형을 만들 수 있다.

(Python/파이썬) 백준 2740번 - 행렬 곱셈

문제출처: https://www.acmicpc.net/problem/2740 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 1. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 N,M = map(int, input().split()) A=[] for i in range(N): A.append(list(map(int,input().split()))) M,K = map(int, input().split()) B=[] for i in r..

(Python/파이썬) 백준 1476번 - 날짜 계산

문제출처: https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 1. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 e,s,m = map(int, input().split()) E,S,M =1,1,1 year = 0 while True: year+=1 if e==E and s==S and m==M: print(year) break E+=1 ; S+= 1; M+=1; if E == 16: E =1 if..

(Python/파이썬) 백준 2902번 - KMP는 왜 KMP일까?

문제출처: https://www.acmicpc.net/problem/2902 2902번: KMP는 왜 KMP일까? 입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드 www.acmicpc.net 1. 코드 name = list(input().split('-')) for i in name: print(i[0], end="") 2. 해결과정 -을 기준으로 이름을 구분하여 리스트에 입력해주고, 리스트의 요소들의 앞 글자만 출력해주면 된다. end = ''을 추가해주면 줄바꿈과 띄어쓰기 없이 출력된다. 3. 느낀점 심플

(Python/파이썬) 백준 2523번 - 별 찍기 -13

문제출처: https://www.acmicpc.net/problem/2523 2523번: 별 찍기 - 13 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 1. 코드 n = int(input()) for i in range(1,n+1): print('*'*i) #for(시작값, 종료값, 스텝) for i in range(n-1,0,-1): print('*'*i) 2. 해결과정 for range(Start, End, Step)을 이용해서 별을 찍어주면 된다. 1부터 시작에서 n 갯수 까지 우선적으로 *를 찍어주고, n-1 갯수 부터 1까지 다시 별을 찍어주면 된다. 3. 느낀점 for문의 범위를 설정할때, 신경을 써서 해줘야겠다.

(Python/파이썬) 백준 2193번 - 이친수

문제출처: https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 1. 코드 1 2 3 4 5 6 7 8 9 10 11 12 #n이 0일때 0개 #n이 1일때 1개 #n이 2일때 1개 pinary =[0,1,1] for i in range(3,91): pinary.append(pinary[i-2]+pinary[i-1]) n = int(input()) print(pinary[n]) cs 2. 해결과정 0으로 시작을 해서는 안되기 때문에 처음은..

(Python/파이썬) 백준 9095번 - 1,2,3 더하기

문제출처: https://www.acmicpc.net/problem/9095 1. 코드 1 2 3 4 5 6 7 8 9 10 sum =[0,1,2,4] for i in range(4,12): sum.append(sum[i-1]+sum[i-2]+sum[i-3]) T = int(input()) for i in range(T): n = int(input()) print(sum[n]) Colored by Color Scripter cs 2. 해결과정 0은 0 1은 1 따라서 한가지 방법 2는 (1+1), 2 따라서 2가지 방법 3은 (1+1+1),(1+2),(2+1),3 따라서 4가지 방법 규칙을 찾아보면 n>3일때 정수 n을 나타낼 방법은 (n-1)+(n-2)+(n-3) 의 공식을 도출해 낼 수 있다. 3. ..