Koala - 16기/코딩테스트 기초 스터디

문제 https://www.acmicpc.net/problem/10974 Algorithm 깊이 우선 탐색(DFS)과 백트래킹을 이용하여 모든 가능한 조합을 탐색한다.현재까지의 순열을 temp 리스트에 저장한다.모든 숫자를 하나씩 시도하며, 이미 사용된 숫자는 제외한다.순열이 완성되면 출력하고, 다른 가능한 순열을 찾기 위해 마지막 숫자를 제거한다(백트래킹).    Coden = int(input())temp = []def dfs(): if len(temp) == n: print(*temp) return for i in range(1, n + 1): if i not in temp: temp.append(i) dfs()..
문제https://www.acmicpc.net/problem/2525풀이* 첫째줄에는 현재 시간(시간, 분)이, 둘째 줄에는 요리하는데 필요한 시간이 주어진다.* 현재시간에서 오븐 구이가 끝나는 시간을 출력해야 한다.1. 자연수 h, m 그리고 d를 입력받는다.2. 끝나는 시간을 계산하기 위해 변수 x를 만들고, 분으로 변환한 후 범위 내 출력을 생각해 1,440으로 나눈다.3. 시와 분을 구하기 위해 필요한 연산을 하고, 제시한 대로 출력한다. 코드 및 설명
문제 https://www.acmicpc.net/problem/10872 Algorithm반복문을 사용해서 1부터 N 까지 곱해준다.   Coden = int(input())result = 1if n > 0: for i in range(1, n+1): result *= iprint(result)
문제 https://www.acmicpc.net/problem/17608  Algorithm첫 줄에 막대기의 개수 n을 입력 받는다둘째 줄부터 n개의 막대기 길이를 입력받는다.스택의 마지막을 1로 설정하여 마지막 막대기보다 긴 막대기가 있으면  count += 1을 하고 막대기의 길이를 가장 긴 막대기로 새로 저장한다.   Codeimport sysinput = sys.stdin.readlineN = int(input())stack = []for _ in range(N): stack.append(int(input()))last = stack[-1]count = 1for i in reversed(range(N)): if stack[i] > last: count += 1 ..
문제https://www.acmicpc.net/problem/15649풀이* 한 줄에 자연수 N, M이 주어진다. (1 ≤ M ≤ N ≤ 8) * 1부터 N까지 자연수 중에서 중복 없이 M개의 수를 고른 조합을 모두 구한 후, 사전 순서대로 증가하는 조합을 출력해야 한다.1. 자연수 N, M을 차례로 입력받는다.2. 1부터 N까지의 자연수로 리스트를 생성, 그 리스트에서 길이가 M인 모든 수열을 변수에 저장한다.3. 문제에서 제시한대로 정렬하고 숫자, 공백으로만 출력한다. 코드 및 설명for문 내의 구조가 조금 다를 뿐 두 코드 모두 잘 작동함.
문제 https://www.acmicpc.net/problem/15874 Codek, n = map(int,input().split())k %= 26s = list(input())for i in range(n): x = ord(s[i]) if 65
문제https://www.acmicpc.net/problem/1181 풀이* 첫째 줄에는 입력될 단어의 개수가, 두 번째 줄부터 마지막 줄까지는 단어가 한 줄씩 주어진다. * 길이가 짧은 것부터, 길이가 같으면 사전 순으로 정렬해 출력한다.1. 빈 리스트를 생성하고 입력받은 문자열을 리스트에 추가한다. 2. 리스트의 중복된 요소를 제거하기 위해 set으로 변경해 준다. (그리고 다시 리스트로 변환한다)3. 문제에서 제시한 대로 리스트를 정렬하고, 한 줄씩 출력한다. 코드 및 설명
문제 https://www.acmicpc.net/problem/10773Codeimport sysK = int(sys.stdin.readline()) stack = [] sum_v = 0 for i in range(K): num = int(sys.stdin.readline()) if stack and num == 0: stack.pop() else: stack.append(num)print(sum(stack))
문제https://www.acmicpc.net/problem/15813풀이* 첫 번째 줄에는 이름의 길이가, 두 번째 줄에는 이름이 주어진다.* 각 알파벳에 할당된 점수를 합쳐 출력해야 한다.1. 이름의 길이와 이름을 각 변수에 저장한다.2. 이름의 길이만큼 점수를 더하는 작업을 반복해야 한다.3. 알파벳의 점수는 A = 1, B = 2, ... , Z = 26점이므로, 알파벳의 아스키 코드 - 64로 간단히 구할 수 있다.코드 및 설명
문제https://www.acmicpc.net/problem/11931풀이* 첫 번째 줄에 앞으로 입력받을 정수의 개수가 입력됨* 두번째 줄부터 입력되는 숫자를 내림차순으로 정렬해 출력해야 함1. 첫 번째 줄에 입력받은 정수만큼 반복하며 리스트에 숫자를 추가하고2. 리스트를 내림차순으로 정렬한 뒤3. 리스트에 저장된 숫자를 한 줄마다 출력해야 함코드 및 설명
문제 https://www.acmicpc.net/problem/17219 Algorithm1. 저장된 사이트의 주소 수 N과 비밀번호를 찾으려는 사이트 주소의 수 M을 입력을 받는다.2. 파이썬의 딕셔너리를 활용해 N 개의 사이트 주소 수와 비밀번호를 각각 key와 value 값으로 딕셔너리에 저장한다.3. M개의 사이트 주소를 딕셔너리의 key값에 대입해 value 값을 출력한다.   CodeN, M = map(int, (input().split()))d = dict()for i in range(N): k , v = input().split() d[k] = vfor i in range(M): t = input() print(d[t])
문제 https://www.acmicpc.net/problem/1764 Algorithm1. n과 m을 split을 이용해 한 줄로 입력받는다.2. 듣지 못한 사람을 a, 보지 못한 사람을 b로 설정하고 각각 n과 m만큼 입력받는다.3. a와 b에 모두 들어가 있는 원소를 c에 저장하고 sort로 정렬한다.4. c의 길이를 출력한 후, 다음 줄에 c를 출력한다.   Coden,m = map(int,input().split())a,b = set(),set()for i in range(n): s = input() a.add(s)for i in range(m): s = input() b.add(s)c = sorted(list(a&b))print(len(c))for i in range(le..
KauKoala
'Koala - 16기/코딩테스트 기초 스터디' 카테고리의 글 목록