목록코딩테스트 (75)
거누의 개발노트
문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 예제 입력 3 4 7 10 예제 출력 7 44 274 작성한 코드 import itertools import sys N = int(sys.stdin.readline()) case = [int(sys.stdin.readline().strip()) for _ in r..
문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 예제 입력 5 4 1 5 2 3 5 1 3 7 9 5 예제 출력 1 1 0 0 1 작성한 코드 import sys n1 = int(sys.stdin.readline()) lst1=list(map(int, sys.stdin...
문제 상위 K번 이상 등장하는 요소를 추출하라. 입력 num = [1,1,1,2,2,3] k = 2 출력 [1,2] 작성한 코드 def topKFrequent1(nums: List[int], k: int) -> List[int]: count = list(collections.Counter(nums).most_common(k)) # k 이상의 최빈값 rtn = [] for i in range(len(count)): rtn.append(count[i][0]) return rtn 파이썬다운 방식 def topKFrequent2(nums: List[int], k: int) -> List[int]: return list(zip(*collections.Counter(nums).most_common(k)))[0] 리..
문제 중복 문자가 없는 가장 긴 부분 문자열의 길이를 리턴 입력 abcabcbb bbbbb pwwkew 출력 3 1 3 작성한 코드 def lengthOfLongestSubstring(s: str) -> int: used = {} max_length = 0 start = 0 for i, v in enumerate(s): if v in used and start
문제 jewels는 보석이며, stones은 갖고 있는 돌이다. stones에는 보석이 몇 개나 있을까? 대소문자는 구분한다. "가지고 있는 돌이있는데, 그 안에서 보석이 몇 개나 있는지 구하는 문제" 제한사항 - 리트코드 1 보석과 돌은 영문으로 되어 있음, 대소문자 구분 All the characters of jewels are unique. -> 보석은 중복되는 문자가 없다, 최대 26+26 = 52 입력 jewels = "aA" stones = "aAAbbbb" 출력 3 작성한 코드 def numJewelsInStones1(jewels: str, stones: str) -> int: cnt = 0 # 돌에있는 값들로 for문을 돌릴건데 for s in stones: # 그 값중에 보석안에 존재하는..
문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 2 ..
문제 원형 큐를 디자인하라. 초기 셋팅 class MyCircularQueue: def __init__(self, k: int): def enQueue(self, value: int) -> bool: def deQueue(self) -> bool: def Front(self) -> int: def Rear(self) -> int: def isEmpty(self) -> bool: def isFull(self) -> bool: 입력 ["MyQueue","push","push","peek","pop","empty"] [[],[1],[2],[],[],[]] 출력 [null,null,null,1,1,false] 작성한 코드 class MyCircularQueue: def __init__(self, k: int):..
문제 스택을 이용해 다음 연산을 지원하는 큐를 구현하라. 초기 셋팅 class MyQueue: def __init__(self): def push(self, x: int) -> None: def pop(self) -> int: def peek(self) -> int: def empty(self) -> bool: 입력 ["MyQueue","push","push","peek","pop","empty"] [[],[1],[2],[],[],[]] 출력 [null,null,null,1,1,false] 작성한 코드 class MyQueue: def __init__(self): self.stack = [] def push(self, x: int) -> None: self.stack.append(x) def pop(se..