Computer Science
[백준][python]1157. 단어공부
문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 예제 입력 1 복사 Mississipi 예제 출력 1 복사 ? 예제 입력 2 복사 zZa 예제 출력 2 복사 Z My answer ans = [0]*26 s=input() for idx,i in enumerate(s): n=ord(i) if n 1: print('?') else..
[백준][python] 2675. 문자열 반복
문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. 예제 입력 1 복사 2..
[백준][python]10809. 알파벳 찾기
문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 예제 입력 1 복사 baekjoon 예제 출력 1 복사 1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -..
[프로그래머스][python]두 개 뽑아서 더하기
Question: 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. Example: My answer: def solution(numbers): answer = [] for i in range(len(numbers)): for j in range(i+1,len(numbers)): answer.append(numbers[i]+numbers[j]) answer = list(set(answer)) answer.sort() retur..
[프로그래머스][파이썬] 71491. 기능개발
programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr My answer: from collections import deque def solution(progresses, speeds): answer = [] dq_progresses=deque(progresses) dq_speeds=deque(speeds) while(dq_progresses): answer_fac=0 for i in range(len(dq_speeds)..
[프로그래머스][python] 최대 용량이 정해진 FIFO 큐 클래스
class MyStack(object): def __init__(self): self.lst = list() def push(self, x): self.lst.append(x) def pop(self): return self.lst.pop() def size(self): return len(self.lst) class MyQueue(object): def __init__(self, max_size): self.stack1 = MyStack() self.stack2 = MyStack() self.max_size = max_size def qsize(self): return self.stack1.size() def push(self, item): if self.qsize()>=self.max_size: re..
[python] queue사용법( Queue module의 Queue class)
Queue module의 Queue class¶ deque보다는 느림 multi-consumer queue를 제공 In [1]: from queue import Queue queue init¶ In [2]: queue1=Queue() queue1 Out[2]: put()¶ In [4]: myqueue=Queue() myqueue.put(1) myqueue.put(2) myqueue.put(3) #한번에 원소를 다 넣을 수는 없음 get()¶ In [7]: myqueue=Queue() myqueue.put(1) myqueue.put(2) myqueue.put(3) front=myqueue.get_nowait() #선입선출 print(front) myqueue.queue 1 Out[7]: deque([2, ..
[python] queue 사용법 (collection 모듈 deque)
python에서 queue 사용법¶ (collections module) deque(덱) 사용¶ deque 초기화¶ deque([iterable[,maxlen]) In [1]: #collections module에서 deque import from collections import deque In [ ]: deque1=deque() deque2=deque([1,2,3]) #list ->queue로 만들기 deque3=deque(maxlen=5) #길이를 정해주면 만약 이 길이를 넘어갈 경우, 앞에 넣은 값 pop되고 뒤에 새 값이 들어감 append¶ In [6]: mydeque=deque() mydeque.append(5) mydeque Out[6]: deque([5]) popleft¶ In [7]: ..
[프로그래머스][python]12922. 수박수박수박수박수박수?
programmers.co.kr/learn/courses/30/lessons/12922 코딩테스트 연습 - 수박수박수박수박수박수? 길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조 programmers.co.kr My answer: def solution(n): repeat=int(n/2) remain=n%2 answer = '' answer+=repeat*("수박") if remain!=0: answer+="수" return answer reference code: def water_melon(n): s = "수박" * n return s[:n]
[프로그래머스][python]12943. 콜라츠 추측
programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr My answer: def solution(num): answer = 0 while(1): if num%2==0: num=num/2 elif num%2!=0 and num!=1: num=num*3+1 elif answer>=500: return -1 elif num==1: return answer answer+=1