목록수학 (28)
홍우진의 개발 일기장
문제 링크https://www.acmicpc.net/problem/13458 풀이 코드x,y,w,h=map(int,input().split())print(min(x, y, w-x, h-y))코드 해석x, y, w-x, h-y 중 최소값이 직사각형의 경계값으로 가는 거리의 최솟값이다.
문제 링크https://www.acmicpc.net/problem/13458 풀이 코드n = int(input())a = list(map(int, input().split()))b, c = map(int, input().split())for i in a: #응시자의 수를 하나씩 불러온다. i -= b #총감독관이 감시 가능한 응시자의 수를 제외한다. if i > 0: #만약 응시자의 수가 총감독관의 감시 가능 인원 이상이면 if i % c > 0: #만약 응시자의 수 나누기 부감독관의 감시 인원을 했을 때 1 이상이라면 n += (i // c) + 1 #응시자수 나누기 부감독관 감시수 의 몫 + 1 else: ..
문제 링크 https://www.acmicpc.net/problem/9506풀이 코드while 1: n = int(input()) if n == -1: break; arr = [] for i in range(1, n): if n % i == 0: arr.append(i) if sum(arr) == n: print(n, " = ", " + ".join(str(i) for i in arr), sep="") else: print(n, "is NOT perfect.")코드 해석브루트포스를 이용하여 약수를 모두 구한 뒤약수의 합이 n과 같다면 출력아니라면 is N..
문제 링크https://www.acmicpc.net/problem/2525 풀이 코드h, m = map(int, input().split())c = int(input()) h += c // 60m += c % 60if m >= 60: h += 1 m -= 60if h >= 24: h -= 24print(h,m)코드 해석나눈 시간을 60으로 나누고 몫을 시, 나머지를 분에 더한다.분이 60분을 넘으면 시에 +1, 분에 -60 시가 24시간을 넘으면 시에 -24
문제 링크https://www.acmicpc.net/problem/11005풀이 코드n, b = map(int, input().split())x = ''arr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" #0~35까지의 숫자while n != 0: #n이 0이 되기 전까지 x += str(arr[n % b]) #n/b의 나머지를 arr에 있는 숫자에서 뽑아서 x에 삽입 n //= bprint(x[::-1]) #x를 거꾸로 출력코드 해석b 진법 변환은 n이 0이 되기 전까지 b로 나눈 뒤 나머지의 arr 값을 x에 저장하고몫을 또 나눈다.
문제 링크https://www.acmicpc.net/problem/1924 풀이 코드su = [1,4,4,0,2,5,0,3,6,1,4,6]week = ['SAT','SUN','MON','TUE','WED','THU','FRI']x,y = map(int,input().split())print(week[(14 + y + su[x-1]) % 7])코드 해석또 홍대병에 걸려 사람들과 다른 방식으로 해결하였다.바로 '크리스티안 헤세의 요일 공식'이다.https://blog.naver.com/yhc33758/222922768282 특정 날짜가 무슨 요일인지 계산하는 방법어느 특정 날짜의 요일을 맞출 수 있는 재미있는 이야기가 있다. 그 이야기의 주인공은 독일의 수학자 겸 ...blog.naver.com위의 블로그 ..
문제 링크https://www.acmicpc.net/problem/2745 풀이 코드n,b=input().split()print(int(n,int(b)))코드 해석int 함수를 사용하면 매우 쉬운 난이도의 문제다.엥? int 함수는 숫자형으로 반환해주는거 아닌가??아니다. 기능이 하나 더 있다.int(변환할 수, 진법) 짜잔~ 이렇게 사용하면 해당 진법으로 변환한 수가 반환된다.
문제 링크https://www.acmicpc.net/problem/2587풀이 코드a = [int(input()) for x in range(5)]a.sort()print(sum(a)//5)print(a[2])코드 해석매우 쉬운 난이도의 문제다.// 연산자를 활용하여 몫을 반환한다.\입력값이 5개로 지정되어있기 때문에 2번째 인덱스를 출력하면 중앙값이 나온다.