/date 24.10.04.
📌 1) 한 번만 등장한 문자
https://school.programmers.co.kr/learn/courses/30/lessons/120896
def solution(s):
answer = []
for i in s:
if s.count(i) == 1:
answer.append(i)
return "".join(sorted(answer))
✔️역시 꾸준히 해야 하는데 휴일에 좀 쉬었다고 감을 잃었다...
📌 2) 7의 개수
https://school.programmers.co.kr/learn/courses/30/lessons/120912
def solution(array):
a = ''
answer = 0
for i in array:
a += str(i)
for k in a:
if k == '7' :
answer += 1
return answer
📌 3) 컨트롤 제트
https://school.programmers.co.kr/learn/courses/30/lessons/120853
def solution(s):
a = s.split()
answer = 0
prev = 0
for i in a:
if i == 'Z':
answer -= prev
continue
prev = int(i)
answer += prev
return answer
📌 4) 소인수분해
https://school.programmers.co.kr/learn/courses/30/lessons/120852
def solution(n):
sosu = []
answer = []
i = 2
while i <= n:
if n % i == 0:
sosu.append(i)
n = n/i
else:
i += 1
for k in sosu:
if k not in answer:
answer.append(k)
set(answer)
return answer
📌 5) 이진수 더하기
https://school.programmers.co.kr/learn/courses/30/lessons/120885
def solution(bin1, bin2):
a = '0b' + bin1
b = '0b' + bin2
k = int(a, 2) + int(b, 2)
return format(k, 'b')
📌 6) 잘라서 배열로 저장하기
https://school.programmers.co.kr/learn/courses/30/lessons/120913
def solution(my_str, n):
answer = []
k = len(my_str)//n
if len(my_str)%n == 0:
for i in range(1, k+1):
answer.append(my_str[n*(i-1):n*i])
else:
for i in range(1, k+2):
answer.append(my_str[n*(i-1):n*i])
return answer
📌 8) 문자열 계산하기
https://school.programmers.co.kr/learn/courses/30/lessons/120902
def solution(my_string):
return eval(my_string)
✔️ eval(): 문자열로 저장된 수식을 계산해주는 파이썬 내장 함수. 파이썬에서 계산할 수 없는 수식일 경우 syntax error 발생
📌 9) 영어가 싫어요
https://school.programmers.co.kr/learn/courses/30/lessons/120894
def solution(numbers):
num_dict = {
"zero": "0", "one": "1", "two": "2", "three": "3", "four": "4",
"five": "5", "six": "6", "seven": "7", "eight": "8", "nine": "9"
}
answer = ""
while numbers:
for word in num_dict:
if numbers.startswith(word): # numbers가 특정 단어로 시작하는지 확인
answer += num_dict[word] # 해당 숫자를 answer에 추가
numbers = numbers[len(word):] # 해당 단어만큼 자르고 나머지 처리
break # 매칭이 되면 다음 반복으로 넘어감
return int(answer) # 최종적으로 문자열을 정수로 변환
음... 다른 풀이도 보자
def solution(numbers):
for num, eng in enumerate(["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]):
numbers = numbers.replace(eng, str(num))
return int(numbers)
이게 훨씬 간단하고 마음에 든다. 나온 김에 enumerate에 복습해보면...
✔️ enumerate() : 순서가 있는 자료형을 받았을 때, 인덱스와 값을 포함하여 리턴. 즉, 인덱스와 값에 동시에 접근하면서 for문을 돌리고 싶다면 enumerate를 활요하면 된다.
아래 블로그에 예제와 함께 잘 설명되어 있다.
📌 10) 삼각형의 완성조건
https://school.programmers.co.kr/learn/courses/30/lessons/120868
def solution(sides):
answer = []
sides.sort()
for i in range(1, sides[1]+1):
if i + sides[0] > sides[1]:
answer.append(i)
for k in range(sides[1]+1, sides[0]+sides[1]+1):
if k < sides[0]+sides[1]:
answer.append(k)
return len(answer)
📌 11) 외계어 사전
https://school.programmers.co.kr/learn/courses/30/lessons/120869
def solution(spell, dic):
a = []
answer = 0
for i in dic:
a.append("".join(sorted(i)))
for k in a:
if k == "".join(sorted(spell)):
return 1
return 2
'학습 기록 > 코딩 테스트 다짜고짜 풀어보기' 카테고리의 다른 글
[python] 프로그래머스 다항식 더하기 (0) | 2024.10.08 |
---|---|
[python] 코딩 테스트 입문 문제 풀기 (8) (1) | 2024.10.06 |
[python] 코딩 테스트 입문 문제 풀기 (6) (2) | 2024.09.30 |
[python] 코딩 테스트 입문 문제 풀기 (5) (0) | 2024.09.29 |
[python] 코딩 테스트 입문 문제 풀기 (4) (2) | 2024.09.28 |