문제 출처: www.acmicpc.net/problem/1057 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 1. 문제 접근 방식 - 토너먼트의 원리를 이용하여 두 수를 2로 나눈 몫을 서로 같아질때까지 빼다보면 라운드 수가 나올 것이라고 생각하였다. 2. 내가 푼 코드 import sys N, k, l = map(int, sys.stdin.readline().split()) cnt = 0 # 같아질 때까지 반복 while k != l: k -= k // 2 l -= l // 2 cnt += 1 print(cnt..
문제 출처: www.acmicpc.net/problem/1251 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 1. 문제 접근 방식 - 구간을 설정하여 단어를 나누고 list형태로 만든 후 sort()함수를 이용하여 정렬한 뒤 가장 첫번째 값을 출력하는 방법을 생각하였다. 2. 내가 푼 코드 word = list(input()) ans = [] tmp = [] # 범위 설정하여 문자열 나누기 for i in range(1, len(word)-1): for j in range(i+1, len(word)): a ..
문제 출처: www.acmicpc.net/problem/2548 2548번: 대표 자연수 첫째 줄에는 자연수의 개수 N이 입력된다. N은 1 이상 20,000 이하이다. 둘째 줄에는 N개의 자연수가 빈칸을 사이에 두고 입력되며, 이 수들은 모두 1 이상 10,000 이하이다. www.acmicpc.net 1. 문제 접근 방식 - 숫자를 입력 받은 후 오름차순으로 정렬해보았다. 그렇게 정렬해두고 생각해본 결과 중간에 있는 값이 대표 자연수가 되는 것을 알았다. 이때 리스트의 길이가 짝수일 경우랑 홀수일 경우는 나누어 계산해야한다. 2. 내가 푼 코드 import sys N = int(sys.stdin.readline()) num = sorted(list(map(int, sys.stdin.readline()..
문제 출처: www.acmicpc.net/problem/1500 1500번: 최대 곱 세준이는 정수 S와 K가 주어졌을 때, 합이 S인 K개의 양의 정수를 찾으려고 한다. 만약 여러개일 경우 그 곱을 가능한 최대로 하려고 한다. 가능한 최대의 곱을 출력한다. 만약 S=10, K=3이면, 3,3,4는 www.acmicpc.net 1. 문제 접근 방식 - 주어진 수를 나누고 나머지 숫자를 어떻게 배분하느냐가 관건이였다. 간단한 수로 몇번 실험을 한 결과 1을 가장 고르게 분배했을 경우 값이 가장 크게 나오는 것을 알고 그대로 적용해 보았다. 2. 내가 푼 코드 import sys S, K = map(int, sys.stdin.readline().split()) # 몫 q = S // K # 나머지 r = S..