/date 24.09.29.
📌 1) 인덱스 바꾸기
https://school.programmers.co.kr/learn/courses/30/lessons/120895
def solution(my_string, num1, num2):
my_list = list(my_string)
my_list[num1], my_list[num2] = my_list[num2], my_list[num1]
answer = "".join(my_list)
return answer
✔️ replace로 해결해 보려다가 주어진 것으로는 replace를 절대 활용할 수 없다는 것을 깨닫고 빠르게 노선을 틀었다.
📌 2) 배열 회전시키기
https://school.programmers.co.kr/learn/courses/30/lessons/120844
def solution(numbers, direction):
answer = []
if direction == "right":
for i in range(0, len(numbers)):
if i != len(numbers) - 1:
answer.insert(i+1, numbers[i])
else:
answer.insert(0, numbers[-1])
else:
for i in range(0, len(numbers)):
if i != 0:
answer.insert(i-1, numbers[i])
else:
answer.insert(-1, numbers[0])
return answer
✔️ 지-저분하길래 다른 사람들 풀이를 찾아봤다
def solution(numbers, direction):
return [numbers[-1]] + numbers[:-1] if direction == 'right' else numbers[1:] + [numbers[0]]
📌 3) 369게임
https://school.programmers.co.kr/learn/courses/30/lessons/120891
def solution(order):
answer = 0
a = list(map(int, str(order)))
for i in a:
if i%3 == 0 and i != 0:
answer += 1
return answer
✔️정수를 한 번에 리스트로 바꾸는 방법은 없는거군아... ㅎ 구글링이 나를 살렸다
📌 4) 외계행성의 나이
https://school.programmers.co.kr/learn/courses/30/lessons/120834
def solution(age):
alpha = 'abcdefghij'
a = list(alpha)
b = list(map(int, str(age)))
answer = ''
for i in b:
answer += str(a[i])
return answer
📌 5) 문자열 정렬하기 (1)
https://school.programmers.co.kr/learn/courses/30/lessons/120850
def solution(my_string):
answer = []
for i in my_string:
if i in ['1','2','3','4','5','6','7','8','9','0']:
k = int(i)
answer.append(k)
answer.sort()
return answer
근데 괜히 복잡하게 푼 것 같아서 다시 풀었다
def solution(my_string):
return sorted([int(i) for i in my_string if i.isdigit() == True])
📌 6) 문자열 정렬하기 (2)
https://school.programmers.co.kr/learn/courses/30/lessons/120911
def solution(my_string):
return ''.join(sorted(my_string.lower()))
✔️ 문자열은 sort로 정렬되지 않음(배열만 정렬 가능). sorted로 정렬해서 문자열로 추가해 저장해 주어야 한다
📌 7) 진료순서 정하기
https://school.programmers.co.kr/learn/courses/30/lessons/120835
def solution(emergency):
answer = []
line = sorted(emergency, reverse = True)
for i in emergency:
k = line.index(i) + 1
answer.append(k)
return answer
📌 8) 암호 해독
https://school.programmers.co.kr/learn/courses/30/lessons/120892
def solution(cipher, code):
answer = ""
for i in range(1, len(cipher)//code + 1):
a = i * code - 1
answer += cipher[a]
return answer
✔️ 생각해보니 slicing으로 풀어도 됐을 것 같다. 시작지점, 끝지점을 지정해 주고 어떤 간격(?)으로 슬라이싱을 할 것인지 지정해 줄 수 있기 때문에 i를 곱해 code의 배수를 만들어주는 파트가 필요하지 않은 방법이 된다.
'학습 기록 > 코딩 테스트 다짜고짜 풀어보기' 카테고리의 다른 글
[python] 코딩 테스트 입문 문제 풀기 (7) (1) | 2024.10.05 |
---|---|
[python] 코딩 테스트 입문 문제 풀기 (6) (2) | 2024.09.30 |
[python] 코딩 테스트 입문 문제 풀기 (4) (2) | 2024.09.28 |
[python] 코딩 테스트 입문 문제 풀기 (3) (1) | 2024.09.27 |
[python] 코딩 테스트 입문 문제 풀기 (2) (1) | 2024.09.26 |