728x90
반응형
목차
무작위로 k개의 수 뽑기
https://school.programmers.co.kr/learn/courses/30/lessons/181858
def solution(arr, k):
answer = []
q = deque(arr)
while q:
item = q.popleft()
if item not in answer:
answer.append(item)
if len(answer) > k:
return answer[:k]
else:
pad = [-1 for _ in range(k - len(answer))]
answer.extend(pad)
return answer
if __name__ == '__main__':
print(solution([0, 1, 1, 2, 2, 3], 3)) # exp 0,1,2
print(solution([0, 1, 1, 1, 1], 4)) # exp, 0,1,-1,-1
print(solution([5, 4, 3, 2, 1], 3)) # exp, 5,4,3
3번째 시도에 성공했다. 1번째 시도에서 정답에 근접한 풀이 방식을 꼬아서 생각하느라 2번째 시도에 set을 이용해 풀었는데 set은 문제에서 요구한 "순서"를 만족시키지 못하는 걸 깨달아 queue를 이용해 풀어냈다.
문자 개수 세기
https://school.programmers.co.kr/learn/courses/30/lessons/181902
import string
def solution(my_string):
ascii_letters = string.ascii_uppercase + string.ascii_lowercase
return [my_string.count(ch) for ch in ascii_letters]
if __name__ == '__main__':
print(solution("Programmers"))
python으로 풀기에 간단한 문제다. 풀이자체가 쉬우니 설명은 생략
코드처리하기
https://school.programmers.co.kr/learn/courses/30/lessons/181932
def solution(code):
answer = []
mode = '0'
for idx, value in enumerate(code):
if mode == '0':
if value != '1' and idx % 2 == 0:
answer.append(value)
if value == '1':
mode = '1'
continue
if mode == '1':
if value != '1' and idx % 2 != 0:
answer.append(value)
if value == '1':
mode = '0'
continue
if not answer:
return "EMPTY"
return ''.join(answer)
요구하는 조건이 조금 복잡하지만 천천히 문제 지문대로 구현하다보니 풀렸다.
728x90
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Programers] 코딩테스트 입문 #6 (with Python) (1) | 2024.05.01 |
---|---|
[Programmers] 코딩테스트 입문 #5 (with Python) (0) | 2024.04.30 |
[Programmers] 코딩테스트 입문 #3 (with Python) (0) | 2024.04.26 |
[Programmers] 코딩테스트 입문 #2 (with Python) (0) | 2024.04.25 |
[Programmers] 코딩테스트 입문 #1 (with Python) (0) | 2024.04.24 |