[코드카타] qr code

seonyoung·2024년 8월 16일
0

📁 문제

두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

📁 입출력 예

💡 내가 적은 오답

def solution(q, r, code):
    answer = ''
    
    for i in code:
        if i % q == r:
            answer += [r+1]
            
    return answer
  • r인 위치의 문자를 앞을 꺼내오는 방법을 내 머리에서 생각할 수 있는 최선이 r+1...
  • 역시나 틀렸었고, 예전에 이와 비슷한 문제를 풀 때 사용했던 것이 있었던 것 같아 찾아보았음

💡 나의 정답

def solution(q, r, code):
    answer = ''
    
    for i, char in enumerate(code):
        if i % q == r:
            answer += char
    
    return answer
  • char : 문자열 code의 각 문자(현재 인덱스 i에 위치한 문자)
    → char의 역할 : 현재 인덱스에서 code 문자열의 특정 문자를 참조하는 것
  • i : 문자 char의 인덱스
  • enumerate : code의 각 문자와 해당 문자의 인덱스를 함께 반환

💡인상 깊었던 다른 정답

def solution(q, r, code):
    return code[r::q]
  • code[r::q] : 인덱스 r에서 시작하여 매 q번째 인덱스의 문자를 추출
  • 나머지가 r인 인덱스를 정확히 선택하기 때문에 문제의 요구사항을 만족
  • q로 나눈 나머지가 r인 위치의 문자를 추출하는 방식과 일치

→ 진짜 미친 것 같다.. 어떻게 이런 방식을 생각할까..? 나는 언제쯤 자연스레 이렇게 생각할까?😂

profile
원하는 바를 이루고 싶은 사람입니다.

0개의 댓글