가끔 생각을 해요 ʕتʔ

🍒 프로그래머스 - 짝수와 홀수

문제

정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.

 

  • 제한사항
    num은 int 범위의 정수입니다.
    0은 짝수입니다.
  • 입출력 예
num return
3 "Odd"
4 "Even"

 

풀이

def solution(num):
    return "Even" if num % 2 == 0 else "Odd"

# num이 2로 나누어 떨어지면 "Even", 그렇지 않으면 "Odd" 리턴

 

🍒 프로그래머스 - 문자열 내 마음대로 정렬하기

문제

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.

 

  • 제한사항
    strings는 길이 1 이상, 50이하인 배열입니다.
    strings의 원소는 소문자 알파벳으로 이루어져 있습니다.
    strings의 원소는 길이 1 이상, 100이하인 문자열입니다.
    모든 strings의 원소의 길이는 n보다 큽니다.
    인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.
  • 입출력 예
strings n return
["sun", "bed", "car"] 1 ["car", "bed", "sun"]
["abce", "abcd", "cdx"] 2 ["abcd", "abce", "cdx"]

 

풀이

def solution(strings, n):
    dic = {string: string[n] for string in strings}
    sorted_dic = sorted(dic.items(), key=lambda x: (x[1], x[0]))
    answer = [x[0] for x in sorted_dic]
    return answer

# strings 요소 순회하며 n번째 글자를 뽑아서 딕셔너리에 저장
# 딕셔너리를 값(n번째 글자)을 기준으로 오름차순 정렬(값이 같을 경우 키(문자열)를 기준으로)
# 정렬된 문자열을 answer에 추가하여 반환

# dic.items()는 딕셔너리 dic의 (키, 값) 튜플들을 반환
# sorted()에서 key 매개변수는 정렬 기준을 지정
# lambda x: (x[1], x[0])은 각 항목의 값을 기준으로 정렬. 먼저 값(x[1], 즉 문자열의 n번째 글자)을 오름차순으로 정렬하고, 값이 같을 경우 키(x[0], 즉 원래 문자열)를 오름차순으로 정렬

 

🍒 TIL

 

  • '문자열 내 마음대로 정렬하기' 문제는 실패로 처리했다. 먼저 주석으로 어떻게 작성할 지 정리한 뒤 작성을 해보는데, 문법이 익숙하지 않아 dic의 정렬 기준을 정하는 방법을 몰라서 찾아봤다. 모르는 문법은 계속 찾아보고 작성해보면서 문법부터 익숙해질 수 있도록 해야겠다.
  • 자료구조 알고리즘에서 큐, 스택, 덱을 익히는 문제도 함께 풀어보고 있다. 각 알고리즘 별로 코테에 나올만한 유형의 문제들도 풀면서 알고리즘 공부도 병행해야겠다.

공유하기

facebook twitter kakaoTalk kakaostory naver band