오늘은 쉬운것부터 차근차근 해보자...
1. 문자열 뒤집기
문자열 my_string이 매개변수로 주어집니다.my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
def solution(my_string):
answer = ''
return my_string[::-1]
for 구문을 활용해서 해보자
def solution(my_string) :
answer = ' '
for inx in range(len(my_string)-1,-1, -1) :
#(my_string)-1 하여 my_string 의 길이를 반환하고 -1 을 넣으면 len(my_string) 의 제일 마지막 인덱스를 반환한다.
#range의 두 번째 인수는 종료 시점을 표기한다. 세번 째 인수는 단계를 지정하며, -1을 넣을 경우 역순을 의미한다
answer += my_string[inx]
return my_string[::-1]
2. 암호 해독(https://school.programmers.co.kr/learn/courses/30/lessons/120892)
range() 함수에 대해서 정확하게 보고 가면,
range(a,b,c) : a부터 b까지 c 간격으로 진행 이다. b는 포함하지 않음
def solution(cipher, code):
answer = ''
for i in range(code-1,len(cipher), code) :
answer+= cipher[i]
return answer
다른 사람 풀이법에
def solution(cipher, code):
answer = cipher[code-1::code]
return answer
에서
[code-1::code]는 Python의 슬라이싱 문법이다.
[start:stop:step]
start: 슬라이싱을 시작할 인덱스 (포함).
stop: 슬라이싱을 종료할 인덱스 (불포함).
step: 슬라이싱의 간격.
stop이 생략되면 슬라이싱은 문자열이나 리스트의 끝까지 진행
range는 동일하게 생략하면 안된다.
range() 함수는 종료 조건(stop)이 필수적
대체
cipher = "helloworld"
code = 4
result = ''.join(cipher[i] for i in range(code-1, len(cipher), code))
print(result) # 출력: 'lr'
3. 다트게임 (https://school.programmers.co.kr/learn/courses/30/lessons/17682)
import re
def solution(dartResult):
bonus = {'S' : 1, 'D' : 2, 'T' : 3}
option = {'' : 1, '*' : 2, '#' : -1}
p = re.compile('(\d+)([SDT])([*#]?)')
dart = p.findall(dartResult)
print(dart)
for i in range(len(dart)):
if dart[i][2] == '*' and i > 0:
dart[i-1] *= 2
dart[i] = int(dart[i][0]) ** bonus[dart[i][1]] * option[dart[i][2]]
answer = sum(dart)
return answer
re.compile('패턴') : 객체를 리턴해 주는 역활
데이터 처리에 있어서 텍스트에서 특정 문자열 검새그 치환 제거할 때 사용한다.
- (\d+): 하나 이상의 숫자(점수).
- ([SDT]): S, D, T 중 하나(보너스).
- ([*#]?): * 또는 # 중 하나를 포함하거나 없을 수도 있음(옵션).
findall() : dartResult에서 정규식 패턴에 맞는 모든 부분 문자열을 추출하여 리스트로 반환
'코딩테스트' 카테고리의 다른 글
하루 코테 3개 풀기 - 8일차 (0) | 2024.12.17 |
---|---|
하루 코테 3개 풀기 - 7일차 (2) | 2024.12.17 |
하루 코테 3개 풀기 - 5일차 (1) | 2024.12.14 |
하루 코테 3개 풀기 - 4일차 (0) | 2024.12.13 |
하루 코테 3문제풀기 - 3일차 (2) | 2024.12.13 |