코딩 기록들

[프로그래머스 코딩테스트 입문]-[순서쌍의 개수, 외계행성의 나이] 본문

프로그래머스 문제기록

[프로그래머스 코딩테스트 입문]-[순서쌍의 개수, 외계행성의 나이]

코딩펭귄 2023. 9. 13. 21:12

1. 순서쌍의 개수

문제설명 

자연수 n이 매개변수로 주어짐, 두 숫자의 곱이 n인 자연수 순서쌍의 개수 return

예시

입력(n) : 20, 출력 result : 6 ((1,20),(2,10),(4,5),(5,4),(10,2),(20,1))

생각해보기

순서쌍의 개수 = 약수개수이므로 n의 약수 개수 구하는 문제일것

def solution(n):
    answer = 0
    for i in range(1, n+1):
        if n % i == 0:
            answer += 1
    return answer

 

2. 외계행성의 나이

문제설명 

나이를 알파벳으로 (a=0, b=1, ... j=9) 표현할때, age가 매개변수로 주어질때 return 하는 방법 구하기

예시

age : 23, result : cd

age : 51, result : fv

생각해보기

리스트로, 딕셔너리로 풀 수 있다

머가 더 효율적인지는 모르겠음

 

1) 리스트로 풀기

def solution(age):
    answer = ''
    # age 리스트 선언 
    age_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
    for i in str(age):
        answer += age_list[int(i)]
    return answer

2) 딕셔너리로 풀기

def solution(age):
    # age 딕셔너리(key:value) 선언
    age_dict = {'0':'a','1':'b','2':'c','3':'d','4':'e','5':'f','6':'g','7':'h','8':'i','9':'j'}
    # 숫자형 age를 문자로
    return ''.join([age_dict[i] for i in str(age)])

    join() 함수   

- 리스트의 요소를 하나의 문자열로 합치는데 사용됨

- 문자열을 이어붙이는데 특정 구분자 사용 ex) a = ','.join(age) -> 요소를 ,로 구분하고 문자열로 합침

- 합치려는 객체의 요소가 모두 문자열 이어야함

 

 

딕셔너리 : 리스트, 튜플과 달리 순서가 없음 -> 인덱스로 접근 불가