본문 바로가기

반응형

백준

[백준] 2609번 - 최대공약수와 최소공배수 (feat. 파이썬으로 최대공약수, 최소공배수 구하기) 1. 문제 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 2. 코드 import math a, b = map(int, input().split()) print(math.gcd(a, b)) print(math.lcm(a, b)) 3. 주요 포인트 이미 python에는 최소공배수와 최대공약수를 구하는 함수가 내장되어 있다. 놀라운 사실! 나도 몰랐다. 하하. 그래서 삽질이란 삽질은 다하다가 math에 내장되어 있다는 것을 깨달았다. 아주 허무하지만,,, 그래,,,, 있으니 참 다행이다. 더보기
[백준] 1436번 - 영화감독 숌 1. 문제 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀 다르게 만들기로 했다. 종말의 숫자란 어떤 수에 6이 적어도 3개이상 연속으로 들어가는 수를 말한다. 제일 작은 종말의 숫자는 666이고, 그 다음으로 큰 수는 1666.. 더보기
[백준] 11729 - 하노이 탑 이동 순서 (feat. 하노이 탑 알고리즘 파이썬) 1. 문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5개인 경우의 예시이다. 2. 코드 def move(N, start, to): print(start, to) def hanoi(N, start, to, via): if N == 1: move(1, start, to) else: hanoi(N-1,.. 더보기
[백준] 1002번 - 터렛 (파이썬) (feat. 원) 1. 문제 조규현과 백승환은 터렛에 근무하는 직원이다. 하지만 워낙 존재감이 없어서 인구수는 차지하지 않는다. 다음은 조규현과 백승환의 사진이다. 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다. 조규현의 좌표 (x1, y1)와 백승환의 좌표 (x2, y2)가 주어지고, 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 이루어져 있다. 한 줄에 x1, y1, r1, x2, y2, r2가 주어진다. x1, .. 더보기
[백준] 3053번 - 택시 기하학 0. 코드 import math r = int(input()) print(r*r*math.pi) print(2*r*r) 1. 문제 https://www.acmicpc.net/problem/3053 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + |y1-y2| 두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다. 따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다. 원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합 반지름 R이 주어졌을 때, 유클리드 기하학에서 원의 넓이와, 택.. 더보기
[백준] 9029번 - 골드바흐의 추측 1. 문제 https://www.acmicpc.net/problem/9020 2. 코드 import math sosu = [] for i in range(2, 10000): flag = 0 temp = int(math.sqrt(i)) for j in range(2, temp+1): if i%j == 0: flag = 1 if flag == 0: sosu.append(i) n = int(input()) for i in range(n): num = int(input()) for j in range(num//2, 1, -1): if (j in sosu) and (num-j in sosu): print(j, num-j) break 3. 알고리즘 1) 1~10000까지 모든 소수를 sosu라는 리스트에 저장 2).. 더보기
[백준] 4948번 - 베르트랑 공준 (파이썬) 1. 문제 2. 코드 import sys import math sosu = [0 for i in range(123457*2)] sosu[1] = 0 sosu[2] = 1 for i in range(2, 123457*2): temp_i = int(math.sqrt(i)) flag = 0 for j in range(2, temp_i+1): if i%j == 0: flag = 1 break if flag == 0: sosu[i] = 1 while 1: n = int(input()) #n = int(sys.stdin.readline()) cnt = 0 if n == 0: break for i in range(n+1, 2*n+1): if sosu[i] == 1: cnt += 1 sys.stdout.write(st.. 더보기
[백준] 11650번 - 좌표 정렬하기 (파이썬) (feat. lambda) 1. 문제 https://www.acmicpc.net/problem/11650 2. 코드 import sys n = int(input()) l = [] for i in range(n): l.append(list(map(int, input().split()))) l.sort(key = lambda x: (x[0], x[1])) for i in range(n): sys.stdout.write('%d %d\n'%(l[i][0], l[i][1])) 3. 주요 포인트 처음에는 딕셔너리로 받아오려했으나 정렬에 어려움이 있었다. 그래서 list형태로 받아오고 lambda로 정렬하였다. lambda는 ''''lambda 인자 : 표현식 '''' 형태로 사용된다. 함수를 아주 간단하게 사용할 수 있다. ex) map(l.. 더보기

반응형