본문 바로가기

전체 글92

백준 1037. 약수 정수의 모든 약수를 준다는 건 페이크고, 사실 배수는 양쪽 끝의 약수를 곱해서 얻을 수 있다. 문제에서 1과 자기 자신은 약수로 주어지지 않는다고 했으므로 첫 약수와 마지막 약수를 곱해주면 된다. 물론 가운데 두 약수를 곱하는 방법도 있겠지만, 어차피 모든 약수가 한 번에 주어지기 때문에 큰 의미는 없는 것 같다. n = int(input()) lst = list(map(int, input().split())) res = min(lst) * max(lst) print(res) 2022. 6. 9.
백준 5086. 배수와 약수 매우 간단한 문제. a, b 두 숫자를 받고, a가 b의 약수면 'factor', 배수면 'multiple', 둘다 아니면 'neither' 를 출력하면 된다. 나머지 연산을 이용해서 풀었다. while True: a, b = map(int, input().split()) if a == 0 and b == 0: break if b % a == 0: print("factor") elif a % b == 0: print("multiple") else: print("neither") 사진 삭제 사진 설명을 입력하세요. 2022. 6. 9.
백준 1358. 하키 어떻게 하필 하키 문제?! 이번 문제는 링크장 위에 있는 선수들의 수를 구하면 된다. 링크장은 직사각형과 직사각형의 높이를 지름으로 하는 두 원이 이어진 형태로 이루어져 있다. 대표사진 삭제 사진 설명을 입력하세요. 그래서 저번 문제인 어린 왕자처럼, 거리를 구해서 풀 생각으로 접근했다. 다만 가운데 직사각형 부분에서는 거리를 구하는 것보다 단순 xy좌표를 따지는 게 쉬우므로 그렇게 처리했고, 그 경우가 아닐 때는 원의 중심으로부터의 거리를 재고 그걸 반지름과 비교하는 방법으로 했다. 원1의 중심은 (x, y+r) , 원2는 (x+w, y+r)이다. 이 때 r은 링크장 높이의 절반이다. W, H, X, Y, P = map(int, input().split()) r = H / 2 count = 0 for .. 2022. 6. 9.
백준 1004. 어린 왕자 딱 봤을 때 되게 어려워보여서 쫄았는데, 접근하는 방법만 알면 생각보다 간단했다. 요지는 원이 하나씩 주어지기 때문에, 출발점과 도착점이 하나는 원 안에, 하나는 원 밖에 있는 경우에만 카운트를 해주면 된다. n = int(input()) for i in range(n): count = 0 start_x, start_y, dest_x, dest_y = map(int, input().split()) univ = int(input()) for j in range(univ): x, y, r = map(int, input().split()) d1 = ((start_x - x)**2 + (start_y - y)**2) ** 0.5 d2 = ((dest_x - x)**2 + (dest_y - y)**2) ** 0... 2022. 6. 9.