반응형
백준 단계별로 풀어보기 7단계 3번문제
10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출
www.acmicpc.net
문제의 핵심
1. 아스키 코드를 이해하고 활용할 수 있는가?
문제를 풀기위해서는 아스키 코드를 알고 있어야한다.
알파벳 소문자의 경우는 97 ~ 122번까지이다.
대문자는 65 ~ 90
숫자 0~ 9까지는 48 ~ 57이다.
해당 숫자를 입력해서 char로 변환해주면 알파벳을 찾을 수 있다.
for문 97부터 122까지 돌리면서 포함하고 있는지를 파악하면 될 것이다.
조금 더 쉽고 간단하게 푸는 방법도 있다.
이 방법은 사실 아스키코드를 정확히 몰라도 풀 수 있다.
for문의 조건식들을 입력할 때 int형태가 아니라 char형태로 'a'부터 'z'까지로 선언해주면 된다.
그럼 자동으로 char형태를 순환하게된다.
이 풀이법은 스스로 해보도록 하자.
정답 코드
using System;
namespace 문자열_알파벳찾기
{
class Program
{
static void Main(string[] args)
{
string s = Console.ReadLine();
// 소문자 아스키코드 : 97~122번
for (int i = 97; i < 123; i++)
{
if (s.Contains(Convert.ToChar(i)))
{
Console.Write(s.IndexOf(Convert.ToChar(i)));
Console.Write(" ");
}
else
{
Console.Write("-1 ");
}
}
}
}
}
반응형
'C# > C# : Baekjoon' 카테고리의 다른 글
[백준] C# : 단어 공부(1157번) (0) | 2021.11.07 |
---|---|
[백준] C# : 문자열 반복(2675번) (0) | 2021.11.06 |
[백준] C# : 숫자의 합 (11720번) (0) | 2021.08.04 |
[백준] C# : 아스키 코드 (11654번) (0) | 2021.08.04 |
[백준] C# : 평균은 넘겠지 (4344번) (0) | 2021.07.30 |
댓글