728x90 분류 전체보기720 백준 - 소인수분해, 파이썬 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net N = int(input()) i = 2 while N > 1: while (N % i) == 0: print(i) N //= i i += 1 아 2021. 12. 5. 백준 - N과 M (1), 파이썬 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net from itertools import permutations n, m = map( int, input().split() ) arr = list( permutations( range(1, n+1) , m) ) for i in arr: for j in i: print(j,"", end='') print() 리스트의 조합에 관련된건 itertools 라이브러리를 사용하면 편하다. 참고: https:.. 2021. 12. 5. 백준 - 뒤집기, 파이썬 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net s = input() count = 0 oneCount = 0 zeroCount = 0 for i in s.split("0"): if "1" in i: oneCount += 1 for i in s.split("1"): if "0" in i: zeroCount += 1 if oneCount < zeroCount: print(oneCount) else: print(zeroCount) 0혹은 1를 기준.. 2021. 12. 5. 백준 - 쉽게 푸는 문제, 파이썬 https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net a, b = map(int, input().split()) arr = [0,] for i in range(1, 1001): for j in range(i): arr.append( i ) sum = 0 for j in range(a, b+1): sum += arr[j] print(sum) 수열이 1 22 333 4444 55555... 요런식으로 숫자의 수만큼 수열이 반복됨. 그리고 처음에 입력 받은 사이즈 만큼 sum을.. 2021. 12. 5. 백준 - 베스트셀러, 파이썬 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net N = int( input() ) books = {} for _ in range(N): book = input() if book in books: books[book] += 1 else: books[book] = 1 books = sorted( books.items(), key=lambda x: x[0] ) # 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다. boo.. 2021. 12. 5. 백준 - 좌표 정렬하기 2, 파이썬 https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net N = int( input() ) arr = [] for _ in range(N): arr.append( list( map(int, input().split()) ) ) arr.sort( key=lambda x: (x[1], x[0]) ) for i in arr: print( i[0], i[1] ) 이전 문제 "좌표 정렬하기"에서 했던 부분.. 2021. 12. 5. 백준 - 좌표 정렬하기, 파이썬 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net N = int( input() ) arr = [] for _ in range(N): arr.append( list( map(int, input().split()) ) ) arr.sort( key=lambda x: (x[0], x[1]) ) for i in arr: print( i[0], i[1] ) sort를 줄 때 key=lambda x를 (.. 2021. 12. 5. 백준 - 단어 정렬, 파이썬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net N = int(input()) arr = [] for _ in range(N): s = input() arr.append( [ len(s), s ] ) arr.sort(key=lambda x: (x[1]) ) arr.sort(key=lambda x: (x[0]) ) tmp = [] for i in arr: if i[1] not in tmp: tmp.append( i[1] ) for i .. 2021. 12. 5. 백준 - 나이순 정렬, 파이썬 https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net N = int(input()) people = [] for _ in range(N): people.append( list( input().split() ) ) people.sort(key=lambda x:int(x[0])) for i in people: print(i[0], i[1]) 소트 소트 2021. 12. 5. 백준 - 수 정렬하기 3, C++ https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net #include using namespace std; int main(void){ int T = 0; int arr[10001] = {0,}; scanf("%d", &T); for(int i=0; i 2021. 12. 5. 백준 - 잃어버린 괄호, 파이썬 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net arr = input().split('-') sum = 0 for i in arr[0].split('+'): sum += int(i) for j in arr[1:]: for x in j.split('+'): sum -= int(x) print(sum) split 메서드를 이용하면 - 기호를 기준으로 따로 분리시킬 수가 있다. 2021. 12. 5. 백준 - ATM, 파이썬 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net T = input() arr = list( map( int, input().split() ) ) arr.sort() tmp = 0 min = 0 for i in arr: tmp += i min += tmp print(min) sort로 오름차순으로 만들어서 대기 시간을 줄여주는 것이 핵심. 2021. 12. 5. 이전 1 ··· 50 51 52 53 54 55 56 ··· 60 다음 728x90