목록Baekjoon (135)
홍우진의 개발 일기장
문제 링크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번째 인덱스를 출력하면 중앙값이 나온다.
문제 링크 https://www.acmicpc.net/problem/10811풀이 코드n,m = map(int,input().split())bagu = [x for x in range(1,n+1)]for k in range(m): i,j = map(int,input().split()) bagu[i-1:j] = reversed(bagu[i-1:j])print(*bagu)코드 해석reversed 라는 함수를 사용하였다.이 함수를 사용하면 수를 뒤집을 때 for 문을 사용하지 않아도 편하게 뒤집을 수 있다.
문제 링크 https://www.acmicpc.net/problem/10813 풀이 코드n,m = map(int,input().split())d = dict()for i in range(1,n+1): #딕셔너리 생성 d[i] = inum = 0for i in range(m): a,b = map(int,input().split()) #수를 받은 후 num에 임시 저장하고 바꿈 num = d[a] d[a] = d[b] d[b] = num print(*list(d.values())) #딕셔너리를 리스트로 변경 후 값만 출력코드 해석딕셔너리를 사용하여 직관적으로 해결하였다.딕셔너리는 Key 와 Value가 함께 움직이기 때문에이런 유형의 문제를 풀 때 간단하게 풀기 쉽다.
문제 링크 https://www.acmicpc.net/problem/2108 풀이 코드import sysinput = sys.stdin.readlinen = int(input())a = [int(input()) for x in range(n)] #리스트 컴프리헨션#산술평균print(round(sum(a)/len(a))) #중앙값a.sort() print(a[len(a)//2]) #최빈값dic = dict() #딕셔너리 생성for i in a: if i in dic: #딕셔너리에 Key, Value 추가 및 증가 dic[i] += 1 else: dic[i] = 1maxval = []for i in dic: if max(dic.val..
문제 링크https://www.acmicpc.net/problem/1966 풀이 코드x = int(input())for _ in range(x): n, m = map(int, input().split()) data = list(map(int, input().split())) a = 1 while(1): if data[0] 0: #순서가 0 이상이면 m -= 1 #순서 - 1 else: m = len(data) - 1 #0이라면 순서를 제일 뒤로 print(a)코드 해석if문 두개를 따로 돌려 큐 자리 옮기기와 실시간 순서 카운팅을 같이 진행하였다.