4. 코딩 테스트...2?(Mission 4)

코딩테스트 2니까 2명이 같이 할까요? 코딩테스트 2니까 2명이 같이 할까요?

오늘은 어제보다 강해졌으니 어제만큼의 설명은 없습니다...

가 아니라 오늘은 조금 더 문제를 풀어가는 힌트를 명료하게 드릴 수 있을것 같습니다.

01. 준비 - 문제읽기

문제 설명

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

제한 조건

  • strings는 길이 1 이상, 50이하인 배열입니다.

  • strings의 원소는 소문자 알파벳으로 이루어져 있습니다.

  • strings의 원소는 길이 1 이상, 100이하인 문자열입니다.

  • 모든 strings의 원소의 길이는 n보다 큽니다.

  • 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.

입출력 예

stringsnreturn

["sun", "bed", "car"]

1

["car", "bed", "sun"]

["abce", "abcd", "cdx"]

2

["abcd", "abce", "cdx"]

입출력 예 설명

입출력 예 1 "sun", "bed", "car"의 1번째 인덱스 값은 각각 "u", "e", "a" 입니다. 이를 기준으로 strings를 정렬하면 ["car", "bed", "sun"] 입니다.

입출력 예 2 "abce"와 "abcd", "cdx"의 2번째 인덱스 값은 "c", "c", "x"입니다. 따라서 정렬 후에는 "cdx"가 가장 뒤에 위치합니다. "abce"와 "abcd"는 사전순으로 정렬하면 "abcd"가 우선하므로, 답은 ["abcd", "abce", "cdx"] 입니다.

문제 자체에 대한 이해는 빠르게 하셨을 것 같습니다. 오늘은 문제 설명과 관련한 내용은 필요 없겠죠?

02. 아이디어!

1) 정렬을 해야하겠다는건 읽자마자 알겠네요

당연히 정렬하는 부분은 여러분이 구현을 하셔야 합니다!

2) 풀어가는 아이디어는 생각보다 쉽습니다.

사전식으로 정렬하면 됩니다!

근데 인덱스에 해당하는 문자열을 해당하는 단어 앞에 붙여서 정렬하면 한큐에 끝나겠네요!

그렇다면

  1. 문자열 앞에 인덱스에 해당하는 문자를 붙인다

  2. 사전순으로 정렬한다

  3. 정렬된 배열의 가장 앞 글자를 땐다

이렇게 풀어낼 수 있겠네요.

03. 오늘의 규칙!

🤔 : 제가 괜히 2인 1조라고 한게 아닙니다!

규칙은 페어프로그래밍 또는 3인 1조 입니다. 5명이면 2 : 2 : 1 은 절대 안됩니다. 2 : 3은 가능해요

그 외에는 원하는 방식으로 구현하시면 됩니다.

각각의 코드는 각자 이름으로 제출해주시되, 각자의 페어 혹은 동료가 누구인지만 따로 주석으로 표기해주세요!

Last updated