반응형
이번 문제는 아주 조금 복잡하다.
문제 이해를 잘 해야한다.
우선 알파벳 소문자로만 이루어진 단어가 하나 등장하는데,
여기에 나오는 각 알파벳들의 위치를 알파벳별로 나열하면 되는 형식이다.
예를들어서 abc라는 단어가 나왔으면, a는 0번째, b는 1번, c는 2번에 배열되어 있다.
따라서 "0 1 2 -1 -1 -1..."를 출력해주면 된다. (나오지 않은 알파벳은 -1로 처리)
using System;
namespace unicoti {
class Program {
static void Main(string[] args) {
char[] arr = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
int[] ints = new int[arr.Length];
string input = Console.ReadLine() ?? "";
for(int i = 0; i < arr.Length; i++) {
ints[i] = input.IndexOf(arr[i]);
}
for(int k = 0; k < ints.Length; k++) {
Console.Write($"{ints[k]} ");
}
}
}
}
나는 이렇게 구현에 성공했다.
우선 알파벳을 이용하기 위해서 배열로 만들어줬다. 데이터 느낌
그리고 출력할 배열을 미리 만들어서 ints라는 흔한 이름을 붙였다.
이후 input에 입력값을 저장해주고,
알파벳을 돌아가면서 위치를 찾은 이후 배열에 저장해줬다.
이후 배열을 출력해줘서 완성했다.
오늘의 느낀점)
IndexOf를 되게 오랜만에 써본 것 같다. 또한 알파벳 배열을 만들걸
되게 고민하고 이게 맞나 싶었는데 나름대로 편한 것 같아서
그렇게 비효율적인 로직은 아닌 것 같다고 느꼈다.
이상으로 도움이 되었길 바라며,
끝.
반응형
'코딩테스트 (C#)' 카테고리의 다른 글
백준 1152 : 단어의 개수 - C# 풀이 (0) | 2024.10.24 |
---|---|
백준 2675 : 문자열 반복 - C# 풀이 (1) | 2024.10.24 |
백준 11720: 숫자의 합 - C# 풀이 (0) | 2024.10.22 |
백준 11654 : 아스키 코드 - C# 풀이 (4) | 2024.09.25 |
백준 9086 : 문자열 - C# 풀이 (0) | 2024.09.24 |
댓글