Python/백준 알고리즘

이번 포스팅은 https://www.acmicpc.net/problem/2751에서 푼 것을 토대로 작성했습니다. | 문제 수 정렬하기 2 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 5 5 4 3 2 1 예제 출력 1 1 2 3 4 5 문제 해석 한 줄씩 입력 오름차순 정렬 후 한 줄씩 출력 | 풀이 1 - 시간 초과 python 코드) n = int(input())..
이번 포스팅은 www.acmicpc.net/problem/2292에서 푼 것을 토대로 작성했습니다. 기본 수학 1의 두 번째 문제인 벌집입니다. 문제 문제 해석 1부터 시작하여 1씩 증가하는 벌집 모양 1에서 N까지 거치는 방의 개수를 출력으로 구해야 함 Python 코드 n = int(input()) cnt = 1 six_cnt = 6 count = 1 while n > cnt: count += 1 cnt += six_cnt six_cnt += 6 print(count) Python 코드 풀이 벌집 문제에서 1-7-19-37 칸이 이동되는 범위가 6씩 증가하는 것을 보고 입력 n이 cnt, 즉 1-7-19-37로 이어지는 숫자보다 작을 시 while문을 빠져나오고 count를 출력하게 만들었습니다. c..
이번 포스팅은 www.acmicpc.net/problem/1712에서 푼 것을 토대로 작성했습니다. 기본 수학 1의 첫 번째 문제인 손익분기점입니다. 문제 문제 해석 첫째 줄에 A, B, C가 빈칸으로 입력 A : 고정 비용 B : 가변 비용 C : 노트북 가격 손익분기점 nC > A+nB 손익분기점이 존재하면 n 출력, 손익분기점이 존재하지 않으면 -1 출력 Python 코드 a,b,c = map(int, input().split()) if b >=c : print(-1) else : print(int((a/(c-b))+1)) Python 코드 풀이 if b >=c : print(-1) else : print(int((a/(c-b))+1)) nc-nb > a n(c-b) > a n > a/(c-b) 이..
이번 포스팅은 www.acmicpc.net/problem/1316에서 푼 것을 토대로 작성했습니다. 문자열의 마지막 문제인 그룹 단어 체커입니다. 문제 문제 해석 1. 단어의 개수 n을 입력받고 n개의 단어를 입력받는다. 2. 떨어져 있는 같은 알파벳이 있으면 그룹 단어가 아니다. 3. 그룹 단어의 개수를 출력한다, Python 코드 n = int(input()) group = 0 for i in range(n): num = input() cnt = 0 for j in range(len(num)-1): if num[j] != num[j+1]: num_list = num[j+1:] if num_list.count(num[j]) > 0: cnt += 1 if cnt == 0: group += 1 print(..
이번 포스팅은 www.acmicpc.net/problem/2941에서 푼 것을 토대로 작성했습니다. 문자열의 아홉 번째 문제인 크로아티아 알파벳입니다. 문제 문제 해석 1. 크로아티아 알파벳이 변경되는 문자를 입력받는다. 2. 목록에 없는 알파벳은 한 글자씩 센다. 3. 입력받은 알파벳의 개수를 출력한다. Python 코드 s = input().lower() a = list(['c=','c-','dz=','d-', 'lj', 'nj', 's=', 'z=']) cnt = 0 for i in range(len(a)): cnt += s.count(a[i]) s = s.replace(a[i], " ") s = s.replace(" ","") print(cnt+len(s)) Python 코드 풀이 1. 입력받은 ..
이번 포스팅은 www.acmicpc.net/problem/5622에서 푼 것을 토대로 작성했습니다. 문자열의 여덟 번째 문제인 다이얼입니다. 문제 문제 해석 1. 대문자로 된 문자열을 입력받는다. 2. 그림의 다이얼과 같이 대응되는 번호를 찾는다. 3. 번호만큼의 시간을 계산하여 최소 시간을 구한다. Python 코드 s = input().upper() dial = list(['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV','WXYZ']) time = 0 for i in range(len(s)) : for j in range(len(dial)) : if (s[i] in dial[j]) == True : time += (j+3) print(time) Python 코드..
이번 포스팅은 www.acmicpc.net/problem/2908에서 푼 것을 토대로 작성했습니다. 문자열의 일곱 번째 문제인 상수입니다. 문제 문제 해석 1. 두 수 A와 B가 첫째 줄에 띄어쓰기로 입력된다. 2. 입력된 수를 뒤집는다. 3. 뒤집힌 수를 비교하여 큰 수를 출력한다. Python 코드 1 a, b = input().split() new_a = int(a[2])*100 + int(a[1])*10 + int(a[0]) new_b = int(b[2])*100 + int(b[1])*10 + int(b[0]) if new_a > new_b : print(new_a) else : print(new_b) Python 코드 풀이 1. str로 입력받은 a와 b를 인덱싱 해서 거꾸로 만들었습니다. a,..
이번 포스팅은 www.acmicpc.net/problem/1152에서 푼 것을 토대로 작성했습니다. 문자열의 여섯 번째 문제인 단어의 개수입니다. 문제 문제 해석 1. 영어 대소문자와 띄어쓰기로 이루어진 문자열을 입력받는다. 2. 공백으로 구분하여 단어의 개수를 출력한다. 3. 단어 맨 앞과 맨 뒤에 공백이 가능하다. Python 코드 s = input() lst = list(s) if s == " ": print(0) elif lst[0] == " " : if lst[len(lst)-1] == " ": print(lst.count(' ')-1) else: print(lst.count(' ')) elif lst[len(lst)-1] == " ": print(lst.count(' ')) else : pri..
우준세
'Python/백준 알고리즘' 카테고리의 글 목록