본문 바로가기

분류 전체보기55

백준 1015번 : 수열 정렬 (Python) 출처 : https://www.acmicpc.net/problem/1015 n = int(input()) a = list(map(int, input().split())) b = list('_'*n) for i in range(n) : b[a.index(min(a))] = i a[a.index(min(a))] = min(a) + max(a) for j in b : print(j, end=" ") 리스트 a와 길이가 같은 빈 리스트 b를 생성한다. 현재 a의 최소값의 인덱스를 받아와서 b의 해당 인덱스에 순위를 저장하고, a의 최소값을 최대값을 더한 값으로 대체한다. 그러면 굳이 해당 값을 pop이나 remove로 제거하지 않고도 다음 a의 최소값을 min 메소드로 구할 수 있다. 2022. 11. 8.
프로그래머스 시저 암호 (Python) 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12926 def solution(s, n) : upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" lower = upper.lower() answer = "" for i in s : if i.isupper() == True : answer = "".join((answer, upper[(upper.index(i) + n) % 26])) elif i.islower() == True : answer = "".join((answer, lower[(lower.index(i) + n) % 26])) elif i == " " : answer = "".join((answer, " ")) re.. 2022. 11. 1.
백준 11652번 : 카드 (Python) 출처 : https://www.acmicpc.net/problem/11652 from collections import Counter n = int(input()) nums = [] for i in range(n) : nums.append(int(input())) nums.sort() print(list(Counter(nums).most_common())[0][0]) 파이썬 내장 라이브러리 collections의 Counter() 명령어는, 주어진 배열의 항목별 개수를 딕셔너리와 유사한 Counter라는 클래스로 변환해준다. x = [1, 1, 1, 2, 2, 0, 0, 0] y = Counter(x) y # 출력 Counter({1: 3, 2: 2, 0: 3}) 또한 Counter.most_common.. 2022. 11. 1.
백준 1740번 : 거듭제곱 (Python) https://www.acmicpc.net/problem/1740 n = int(input()) print(int(bin(n)[2:], 3)) 한 개 이상의 서로 다른 3의 제곱수의 합으로 표현되는 숫자들을(1, 3, 4, 9, 10, 12, 13 ... ) 3진법으로 써보면 1, 10, 11, 100, 110, 111 .... 이런 형태가 된다. '서로 다른' 3의 제곱수를 합해야하므로 자릿수는 2가 될 수 없다. 그런데 이 수열은 곧 1부터의 자연수를 2진법으로 나타냈을 때와 모양이 같다. 즉, 주어진 조건을 만족하는 n번째로 작은 수는 n을 2진법으로 변환하고 그 값을 3진수로 간주해 10진법으로 변환한 값이다. (ex 5번째로 작은 수 -> 5를 2진법으로 변환 = 101 -> 3진수 101을 1.. 2022. 10. 26.