1. 추억점수
💡dict 함수와 zip을 사용해 쉽게 풀이할 수 있다.
아래 코드는 key를 name, value를 yearning으로 하여 딕셔너리를 생성했다.
name = ["may", "kein", "kain", "radi"]
yearning = [5, 10, 1, 3]
dictionary = dict(zip(name,yearning))
2. 가운데 글자 가져오기
💡리스트 slicing에 관한 개념이 필요하다.
⇒ list[start:end+1] 로 원하는 위치에 있는 것을 가져올 수 있다
a= ['a','b','c','d','e']
a[2:4]
#실행결과
['b','c']
#인덱스를 1~3까지 값을 거꾸로 가져오기
a[3:0:-1]
#실행결과
['d','c','b']
3. 수박수박수박수박수박수?
💡짝수일 경우 '수박' * n//2 만큼, 홀수일경우 '수' + '박수' * n//2 만큼 반복한다고 생각하여 풀이했다.
if
1일 경우 수
3일경우 수박수 ⇒ 수 + 박수
5일경우 수박수박수 ⇒ 수 + 박수박수
7일경우 수박수박수박수 ⇒ 수 + 박수박수박수
def solution(n):
#n이 짝수 일 경우
if n % 2 == 0 :
answer = '수박'*(n//2)
#n이 홀수일경우
else :
answer = '수'+('박수')*(n//2)
return answer
4. 약수의 개수와 덧셈
def solution(left, right):
answer = 0
#범위가 left부터 rigt까지
for i in range(left , right+1) :
result = []
for j in range(1,i+1) :
if i % j == 0 :
result.append(i)
#만일 약수의 개수가 짝수라면 더하기
if len(result) % 2 == 0 :
answer += i
#만일 약수의 개수가 짝수라면 빼기
else :
answer -= i
return answer
5. 문자열 내림차순
💡정렬 함수인 sorted를 사용해서 정렬 후, join을 사용해서 리스트 내 str을 붙여서 출력함
😂 큰 순에서 작은 순으로 정렬할 때 reverse = True 설정 ( 바보같이 ascending 쓰고 있었음..)
def solution(s):
answer = sorted(s , reverse = True)
return (''.join(answer))
6. 문자열 다루기 기본
💡숫자.문자열 판별 함수 기억해놓기!
숫자 판별 : isdigit()
문자열 판별 : isalpha() ⇒ 공백이 있을경우 False반환
숫자+문자열 판별 : isalnum()
7. 부족한 금액 계산하기
def solution(price, money, count):
sum = 0
for i in range(1,count+1) :
sum += price * i
if sum > money :
answer = abs(sum-money)
else:
answer = 0
return answer
8. 예산
💡오름차순으로 정렬 후 신청금액보다 합이 클 경우 가장 큰 금액부터 반환
🤔 pop은 맨마지막 원소를 리턴하여 해당 원소 삭제
def solution(d, budget):
#오름차순정렬
d = sorted(d)
#신청금액보다 클 경우 가장 큰 금액부터 반환
#pop은 맨마지막 원소를 리턴하여 해당 원소 삭제
while budget < sum(d) :
d.pop()
return len(d)
9. 같은 숫자는 싫어
💡완전탐색적방법으로 해결, 이전 숫자와 동일하지 않을 경우 원소 추가
def solution(arr):
answer = []
answer.append(arr[0])
# 이전 숫자와 동일하지 않을 경우 원소 추가 진행
for i in range(1,len(arr)) :
if arr[i] != arr[i-1] :
answer.append(arr[i])
return answer
10. 숫자 문자열과 영단어
💡dict 함수를 이용해 key를 문자로 value를 숫자로 매핑하여 풀기
🤔어떻게 매핑을 해야하지 ? ⇒ replace를 이용해 해결!!
def solution(s):
num = ['0','1','2','3','4','5','6','7','8','9']
eng = ['zero','one','two','three','four','five','six','seven','eight','nine']
eng_num = dict(zip(eng,num))
for key in eng_num :
s = s.replace(key , eng_num[key])
return int(s)
11. 문자열 내 마음대로 정하기
💡 전에도 개념을 정리해서 기록했는데 그새 까먹음.. 복기!
https://zzoming00.tistory.com/15
def solution(strings, n):
return sorted(sorted(strings) , key = lambda x : x[n])
오늘은 여기까지..!!
'코딩테스트 (Coding Test)' 카테고리의 다른 글
[LeetCode] - 두 수의 합 (0) | 2023.11.14 |
---|---|
[프로그래머스] Lv1 문제풀이 (1) | 2023.10.09 |
[백준] 1937번 욕심쟁이판다 - 파이썬 (0) | 2023.10.06 |
[백준] 10815번 숫자카드 - 파이썬 (0) | 2023.10.06 |
[백준] 2805번 나무자르기 - 파이썬 (1) | 2023.10.06 |