코딩테스트
프로그래머스 - 숫자 찾기/문자열 정렬하기(2)/머쓱이보다 키 큰 사람
sogummi
2023. 4. 3. 15:26
1. 숫자 찾기
#문제 설명
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
#제한사항
0 < num < 1,000,000
0 ≤ k < 10
num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.
#입출력 예
num k result
29183 1 3
232443 4 4
123456 7 -1
def solution(num, k): # 정수
answer = str(num).find(str(k))
if answer == -1:
return -1
return answer + 1
return answer
정수를 문자열로 변환 후 find()함수로 k가 처음 등장하는 인덱스를 반환하게 했다. 출력예시에서는 인덱스 위치를 각 +1해주지만, k가 num에 있지 않을 경우 if문을 써서 -1을 그대로 반환하도록 작성
2. 문자열 정렬하기(2)
#문제 설명
영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.
#제한사항
0 < my_string 길이 < 100
#입출력 예
my_string result
"Bcad" "abcd"
"heLLo" "ehllo"
"Python" "hnopty"
def solution(my_string): #대소문자 문자열
return(''.join(sorted(my_string.lower())))
=>my_string은 문자열로 시작하여 lower함수로 모든 문자열 소문자로 변환.
sorted()함수 사용하여 정렬된 리스트 형태로 join함수에 바로 전달하여 리스트를 문자열로 변환
*sort()대신 sorted()를 쓴 이유?
-> 파이썬 문자열 자료형은 immutable(불변)자료형. 한 번 생성된 문자열을 변경할 수 없기에 원본 리스트를 변경해버리는 sort()함수는 문자열에서 호출 불가하며, sorted()함수는 문자열을 변경하지 않고 새로운 정렬된 리스트를 반환!!
이렇게 때문에 sorted()함수는 문자열 정렬 시 유용하게 사용가능 하다.
3. 머쓱이보다 키 큰 사람
#문제 설명
머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.
#제한사항
1 ≤ array의 길이 ≤ 100
1 ≤ height ≤ 200
1 ≤ array의 원소 ≤ 200
#입출력 예
array height result
[149, 180, 192, 170] 167 3
[180, 120, 140] 190 0
def solution(array, height): #반 전체의 키 값 배열(정수), 머쓱이 키(정수)
answer = 0
for i in array:
if i > height:
answer += 1
return answer