프로그래머스 코딩테스트 입문
9일차: 수학, 문자열, 해시, 완전탐색, 조건문
1. 개미 군단
# 장군개미 수 = hp//5, 병정개미 수 = (hp-(hp//5)*5)//3
def solution(hp):
jang = hp//5
byeong = (hp-(jang*5))//3
il = hp-((jang*5)+(byeong*3))
answer = jang + byeong + il
return answer
2. 모스 부호(1)
morse = {
'.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
'--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
'--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
'...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
'-.--':'y','--..':'z'
}
def solution(letter):
# a = letter.split()
answer = ''.join([morse[x] for x in letter.split()])
return answer
# lambda 함수
solution = lambda letter: ''.join([morse[x] for x in letter.split()])
3. 가위 바위 보
# 2일 때는 0, 0일 때는 5, 5일 때는 2 return
# 문자열 rsp -> split으로 리스트로 만들기
# for문 돌면서 result 리스트 만들기 -> join으로 문자열로 바꾸기
def solution(rsp):
result = []
for i in range(len(rsp)):
if rsp[i] == '2':
result.append('0')
elif rsp[i] == '0':
result.append('5')
elif rsp[i] == '5':
result.append('2')
answer = ''.join(result)
return answer
4. 구슬을 나누는 경우의 수
def factorial(n):
if n > 1:
return n * factorial(n - 1)
else:
return 1
def solution(balls, share):
x = factorial(balls)
y = factorial(share)
z = factorial(balls - share)
return x / (y*z)
프로그래머스 코딩테스트 입문
10일차: 조건문, 배열, 수학, 시뮬레이션
1. 점의 위치 구하기
def solution(dot):
if dot[0]>0 and dot[1]>0:
answer = 1
elif dot[0]>0 and dot[1]<0:
answer = 4
elif dot[0]<0 and dot[1]>0:
answer = 2
else:
answer = 3
return answer
2. 2차원으로 만들기
def solution(num_list, n):
answer = []
for i in range(n, len(num_list)+1, n):
answer.append(num_list[i-n:i])
return answer
3. 공 던지기
# len(numbers)와 k를 비교
def solution(numbers, k):
길이 = len(numbers)
idx = k*2 -2
if 길이/2 >= k:
answer = numbers[idx]
elif 길이/2 < k:
a = numbers*((k//int(길이/2))+1)
answer = a[idx]
print(a)
return answer
4. 배열 회전시키기
# "right" : 맨 마지막이 맨 첫 번째로 이동
# "left" : 맨 첫 번째가 맨 마지막으로 이동
def solution(numbers, direction):
length = int(len(numbers))
first = numbers[0]
last = numbers[-1]
if direction == "left":
numbers.insert(length, first)
answer = numbers[1:length+1]
elif direction == "right":
numbers.insert(0, last)
answer = numbers[0:length]
return answer
728x90
'데이터 분석 > 코딩 테스트_Python' 카테고리의 다른 글
[코딩 테스트] Python - 입문 - Day13, Day14 (0) | 2023.09.06 |
---|---|
[코딩 테스트] Python - 입문 - Day11, Day12 (0) | 2023.08.04 |
[코딩 테스트] Python - 입문 - Day7, Day8 (0) | 2023.07.25 |
[코딩 테스트] Python - 입문 - Day5, Day6 (0) | 2023.07.25 |
[코딩 테스트] Python - 입문 - Day3, Day4 (0) | 2023.01.03 |
댓글