Koala - 15기/기초 알고리즘 스터디

https://www.acmicpc.net/problem/10972알고리즘 분류수학조합론from itertools import permutations as pminput = __import__('sys').stdin.readlineN = int(input())num_tuple = tuple(map(int, input().split()))state = 0for i in pm(range(1,N+1),N): if num_tuple == tuple(range(N, 0, -1)): print(-1) break if state: print(' '.join(map(str, i))) break if i == num_tuple: state ..
https://www.acmicpc.net/problem/1718문제 풀이1. 평문과 암호화 키 입력받기2. 평문 길이만큼 반복 -> 문자가 소문자라면 -> 해당 문자와 암호화 키의 차이 구하기3. 차이에 맞는 소문자로 반환하여 리스트에 저장4. 해당 리스트 출력문제 코드s = list(input())key = list(input())for i in range(len(s)): if 97
https://www.acmicpc.net/problem/1032문제풀이arr 리스트에 파일 이름들을 저장한다. 그리고 각각의 파일이름의 한 글자씩을 서로 비교한다. 만약 하나라도 한 글자가 다르면 "?"를 출력하고 아니면 글자를 출력한다.소스코드N = int(input())arr = []for i in range(N): arr.append(input())for i in range(len(arr[0])): x = arr[0][i] check = True for j in range(1, N): if x != arr[j][i]: check = False break if check: print(x, end='') ..
문제 풀이math 모듈을 이용하면 쉽게 최대공약수를 구할 수 있다.a, b의 최소공배수는 a * b / gcd(a, b)임을 이용한다코드
https://www.acmicpc.net/problem/15820알고리즘 분류구현result = ['Wrong Answer','Accepted','Why Wrong!!!']S1, S2 = map(int,input().split())state = 1lst1 = [list(map(int, input().split())) for _ in range(S1)]for i in lst1: if state == 0: break if i[0] == i[1]: state = 1 else: state = 0 lst2 = [list(map(int, input().split())) for _ in range(S2)]if not state == 0: for..
https://www.acmicpc.net/problem/1100풀이1. 8줄에 걸쳐 문자열을 리스트로 받는다2. 행의 짝/홀에 따라 선별할 칸을 설정한다3. 해당하는 칸의 문자가 'F' 이면 cnt를 증가시킨다코드
https://www.acmicpc.net/problem/11728 문제풀이두 배열의 크기를 각각 A, B로 정의하고 정수값을 입력받습니다.A만큼 item으로 들어갈 정수를 a, B만큼 item으로 들어갈 정수를 b로 입력받습니다. a와 b를 더한 값을 combined라는 변수에 저장합니다.combined에 저장한 값을 정렬합니다.그 후 정렬된 값을 공백을 낀 채로 출력합니다.문제풀이A, B = map(int, input().split())a=list(map(int, input().split()))b=list(map(int, input().split()))combined=a+bsorted_arr=sorted(combined)print(' '.join(map(str, sorted_arr)))감사합니다.
https://acmicpc.net/problem/5533문제 풀이n = int(input())arr = [list(map(int,input().split())) for _ in range(n)]ans = [0]*nfor i in range(3): d = {} for j in range(n): score = arr[j][i] if score in d: d[score] += 1 else: d[score] = 1 for k in range(n): score = arr[k][i] if d[score] == 1: ans[k] += scoreprint('\n'.join(map(..
https://www.acmicpc.net/problem/10798문제 풀이1. 2차원 배열 형식으로 입력받기2. 각 줄의 최대 길이를 비교 (해당 문자열의 길이가 최대 길이보다 작다면 넘어갈 수 있도록)3. 출력할 순서로 정리할 리스트 생성4-1. 문자열의 길이가 최대길이보다 짧으면서 확인하는 위치가 비어있는 곳이라면 건너뛰기4-2. 위에서 해당사항이 없다면 출력 리스트에 추가5. 출력 리스트 출력문제 코드arr = []for i in range(5): arr.append(list(input()))max_length = 0for i in range(5): if len(arr[i]) > max_length: max_length = len(arr[i]) toPrint =..
https://www.acmicpc.net/problem/18406문제문제풀이점수 N을 문자열로 입력받는다. 문자열 N의 길이는 항상 짝수이기 때문에 문자열의 자릿수를 기준으로 반으로 나눈다. 반으로 나누어 왼쪽 부분의 각 자릿수의 합과 오른쪽 부분의 각 자릿수의 합을 반복문을 통해서 구한다. 그 이후 왼쪽 부분의 각 자릿수의 합과 오른쪽 부분의 각 자릿수의 합이 같다면 "LUCKY"를 출력하고, 만약에 다르다면 "READY"를 출력한다.소스코드N = input()l = 0r = 0for i in range(len(N)//2): l += int(N[i]) r += int(N[-1-i])if l == r: print("LUCKY")else: print("READY")
1. 문제2. 코드 n=int(input())ans = 0 while True : if n == 0 : break ans = (ans + n % 2) * 2 n = n // 2 print(ans//2)  3. 문제풀이1. n을 2로 나눈 나머지를 이전 값에 더하고 다시 2를 곱한다. (십진수 만들기)2. n // 2로 버림 나눗셈을 해서 업데이트 한다.3. 나눌 것이 없다면 종료 시키고 십진수(ans)를 버림 나눗셈해서 표현한다.
1874번: 스택 수열 (acmicpc.net)문제풀이1. 입력받을 수의 개수를 받음2. 원래의 수열을 original_series변수에 리스트 형식으로 저장한다.3. 10까지 커지는 변수 num 설정. 원래의 수열보다 num이 작은 동안 정렬한 리스트(stack 변수)에 추가해준다.(+ '+'도 출력리스트에 추가해줌)4. stack의 마지막 요소가 원래의 수열과 같을 때까지 pop()을 실행. (+ '-'도 출력리스트에 추가)- 여기서 원래 수열이 끝까지 도달했음을 확인하기 위해 original_count 추가 (1씩 더해주는 형태. 정렬의 횟수와 관계없이 원래 수열과 정렬하고 있는 수열이 몇 번째까지 맞았는지를 확인하게 해줌.)5. 스택이 존재하면 (즉, 정렬되지 않으면) 'NO'를 출력해준다.6. ..
KauKoala
'Koala - 15기/기초 알고리즘 스터디' 카테고리의 글 목록 (2 Page)