본문 바로가기

수학4

[Python] 백준 13909번 (창문 닫기) [실버5] https://www.acmicpc.net/problem/13909N의 범위가 21억이고 시간 제한이 1초라서 시뮬레이션으로 풀면 무조건 시간 초과가 뜰 것 같다. 하지만 문제만 읽고서는 한 눈에 규칙이 보이지 않아 처음에는 나이브하게 N을 하나씩 늘려갔다.# 1# 1# 1 0# 1 2# 1 0 0# 1 2 3# 1 0 0 1# 1 2 3 4# 1 0 0 1 0# 1 2 3 4 5# 1 0 0 1 0 0# 1 2 3 4 5 6# 1 0 0 1 0 0 0# 1 2 3 4 5 6 7# 1 0 0 1 0 0 0 0# 1 2 3 4 5 6 7 8# 1 0 0 1 0 0 0 0 1# 1 2 3 4 5 6 7 8 9뭔가 규칙이 보이긴 한 것 같다. 해당 창문의 번호가 어떤 수의 제곱수이면 창문이 열려 있는 것 같다.. 2025. 2. 25.
[Python] 백준 17103번 (골드바흐 파티션) [실버2] https://www.acmicpc.net/problem/17103N의 범위가 1000000까지 이므로 에라토스테네스의 체를 사용하면 될 것 같다. 정답import sysprime_list = [True for _ in range(1000001)]prime_list[0] = Falseprime_list[1] = Falsefor i in range(2, 1000001): if prime_list[i] == True: for j in range(i*2, 1000001, i): prime_list[j] = Falseprime_num = []for i in range(len(prime_list)): if prime_list[i] == True: prime_.. 2025. 2. 24.
[Python] 백준 1001번 (A-B) [브론즈5] https://www.acmicpc.net/problem/1001이 문제는 1000번 문제에서 A+B를 A-B로만 바꾸면 되는 문제이다. 정답A, B = map(int,input().split())print(A-B) 풀이1. input().split()을 통해 입력값이 문자열 숫자 리스트로 만들어진다.['3', '2']  2. map 함수를 통해 리스트의 각 요소가 int 함수로 처리된다.int('3') = 3int('2') = 2 3. A와 B에 각각 3과 2가 대입된다.A, B = 3, 2 4. print(A-B)를 하면 1이 출력된다.print(A-B) # 1 2025. 2. 23.
[Python] 백준 1000번 (A+B) [브론즈5] https://www.acmicpc.net/problem/1000 이 문제를 시작으로 내가 풀었던 문제들을 하나씩 올려보고자 한다. 이 문제는 아마도 백준을 처음 시작한다면 가장 먼저 풀어보게 될 문제일 것이다. 아직은 출력의 수가 하나라서 print를 써도 상관 없지만, 나중에 가면 sys.stdout.write()를 써야 시간초과가 안 뜰 것이다. 정답A, B = map(int,input().split())print(A+B) 풀이1. input().split()을 통해 입력값이 문자열 숫자 리스트로 만들어진다.['1', '2']  2. map 함수를 통해 리스트의 각 요소가 int 함수로 처리된다.int('1') = 1int('2') = 2 3. A와 B에 각각 1과 2가 대입된다.A, B = 1, .. 2025. 2. 23.