※ 본 사진과 해당 게시글 내용의 문제 모두 프로그래머스[Programmers]사이트에 발췌해왔습니다.

💬 들어가기 앞서..

매번 자르고 붙이고...
숫자만 다루는 알고리즘을 풀다가
오랜만에 포맷(Format)을 사용하는 알고리즘 문제를 만나
쉬운 문제임에도 불구하고 이렇게 글을 쓰게 되었다..
ㅋ...ㅋ

※주의※
정말 쉬워서 김빠지는 문제일 수 있어요..


❓ 문제

String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, 
"김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. 
seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

제한 사항 :
seoul은 길이 1 이상, 1000 이하인 배열입니다.
seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
"Kim"은 반드시 seoul 안에 포함되어 있습니다.

<입출력 >
seoul		| return
["Jane", "Kim"]	| "김서방은 1에 있다"

❗ 풀이

My Code

def solution(seoul):
    return f"김서방은 {seoul.index('Kim')}에 있다"

앞서 말했듯이... 정말 쉽다...
하지만 반가운 f"~{}~" 포맷팅..
물론 해당 문제가 일반적으로 우리가 순서를 세는 방식이 아닌
컴퓨터님(?)이 매기는 방식으로 순서를 반환하는 문제이니
인간의 셈으로 반환하고 싶다면 +1을 붙여주면 된다ㅋㅋㅋ

.index('Kim')으로 Kim의 위치를 불러왔다.

❣ 다른 풀이

(1)

def findKim(seoul):
    return "김서방은 {}에 있다".format(seoul.index('Kim'))

다른 김서방 찾기는
.format() 메서드를 사용했다.
{}를 쓰는 것은 동일하지만 이 메서드는 중괄호 내부에 입력할 수 없고
.format()의 인수로 넣어주어야 한다.


(2)

def findKim(seoul):
    for i in range(len(seoul)):
        if seoul[i]=="Kim":
            return "김서방은 {}에 있다".format(i)

요 풀이는 독특해서 가져오게 되었는데
배열의 요소 갯수( len(seoul) )에 대해 for문을 돌려
해당 순서가 Kim인지 비교하는 형식으로 해결하였다.
이게 조금 더 어려운 느낌...헣헣

0개의 댓글