JSITCLUB
파이썬 - 프로그래머스 - 서울에서 김서방 찾기 본문
프로그래머스 level 1
문제 설명
String형 배열 seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하는 함수, solution을 완성하세요. seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
제한 사항
-
seoul은 길이 1 이상, 1000 이하인 배열입니다.
-
seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
-
Kim은 반드시 seoul 안에 포함되어 있습니다.
입출력 예
seoul |
return |
["Jane", "Kim"] |
"김서방은 1에 있다" |
풀이 및 코드 |
문제요약
리스트값에서 "Kim"이라는 문자열의 위치(인덱스)값을 찾아 원하는 문자열로 리턴하는 문제 입니다.
문제해설
먼저 문제에서 배열이라고 이야기 하는 부분은 파이썬의 리스트라고 생각하고 푸시면 되겠습니다.
이 문제는 리스트에서 값을 검색하는 대표적인 문제로 리스트를 반복하면서 조건에 맞는 값을 찾는 문제 입니다. 앞으로 문제를 풀면서 검색하는 일이 수 없이 나올테니 잘 익히고, 자꾸 반복해 익숙하게 하시기 바랍니다.
반복은 리스트의 길이만큼만 반복하기때문에 for문, 문제의 결과에 인덱스값이 필요하기 때문에 range()함수 를 이용하겠습니다.
1. 요소들을 무조건(조건문 없이) 찍어 봅니다.
2. 여기에 우리가 원하는 조건을 붙여봅니다.
코드에서 i에는 0 부터 (seoul의 길이-1)까지의 수가 순서대로 들어갑니다. 그러므로 반복이 진행됨에 따라 seoul[i]값은 seoul의 0번째 값, seoul의 1번째 값 ... 이 되는 것입니다. 그것들을 차례로 비교하다가 값이 "Kim"이 되면 출력 했으니 당연히 출력 될때의 i가 "Kim"의 위치가 됩니다.
여기까지 하면 거의 다 해결 되었습니다. 찾아낸 i로 결과 문장을 만들어 return 해주면 됩니다.
def solution(seoul):
answer = ''
for i in range(len(seoul)):
if seoul[i]=="Kim":
answer= "김서방은 "+str(i)+"에 있다."
break
return answer
다른 방법으로는 리스트의 index() 메서드를 사용하는 간단한 방법도 있습니다. 하지만, 다른 언어에서도 사용할 수 있는 위의 방법을 먼저 충분히 익히기 바랍니다.
결과코드
def solution(seoul):
return "김서방은 " + str(seoul.index("Kim"))+ "에 있다"
'파이썬 > 문제풀이' 카테고리의 다른 글
파이썬 - 프로그래머스 - 문자열내 p와 y의 개수 (0) | 2020.05.19 |
---|---|
파이썬 - 프로그래머스 - 가운데 글자 가져오기 (0) | 2020.01.03 |
파이썬 - 프로그래머스 - 수박수박수박수 (0) | 2019.12.30 |
파이썬 - 프로그래머스 - 문자열을 정수로 바꾸기 (0) | 2019.12.30 |
파이썬 - 프로그래머스 - 직사각형 별찍기 (0) | 2019.12.28 |