◎ 문제
○ 출처
https://programmers.co.kr/learn/courses/30/lessons/12915
○ 문제 설명
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. |
○ 제한 조건
|
○ 입출력 예
○ 입출력 예 설명
입출력 예 1 입출력 예 2 |
○ 작성 예시 코드
public class Solution {
public string[] solution(string[] strings, int n) {
string[] answer = new string[] {};
return answer;
}
}
◎ 나의 문제 풀이
using System;
public class Solution
{
public string[] solution(string[] strings, int n)
{
string[] answer = new string[] { };
// Sort 에 간단한 문자의 비교 연산을 추가하여 실행
Array.Sort(strings, (str1, str2) => {
// 문자 추출
var word1 = str1.Substring(n, 1);
var word2 = str2.Substring(n, 1);
// 같은 단어면 사전순 정렬, 아니라면 해당 문자 기준으로 비교
if(word1 == word2)
{
return str1.CompareTo(str2);
}
else
{
return word1.CompareTo(word2);
}
});
answer = strings;
return answer;
}
}
◎ 다른 문제 풀이
using System.Linq;
public class Solution
{
public string[] solution(string[] strings, int n) {
// 우선은 먼저 사전순으로 미리 정렬한다
string[] answer = strings.OrderBy(word => word).ToArray();
// 그 후 지정된 단어의 순서대로 다시 정렬
answer = answer.OrderBy(word => word[n]).ToArray();
return strAnswer;
}
}
'프로그래밍 문제 풀이 > C#' 카테고리의 다른 글
[프로그래밍 문제 풀이] 프로그래머스 - 올바른 괄호 (C#) (0) | 2020.07.21 |
---|---|
[프로그래밍 문제 풀이] 프로그래머스 - 예산 (C#) (0) | 2020.07.20 |
[프로그래밍 문제 풀이] 프로그래머스 - 직사각형 별찍기 (C#) (0) | 2020.07.20 |
[프로그래밍 문제 풀이] 프로그래머스 - 행렬의 덧셈 (C#) (0) | 2020.07.20 |
[프로그래밍 문제 풀이] 프로그래머스 - 최대공약수와 최소공배수 (C#) (0) | 2020.07.19 |