백준 5622번 c#
내가 생각해낸 '복잡한' 방식
using System;
namespace Baekjoon
{
internal class Program
{
static void Main(string[] args)
{
//이번 문제는 아스키 코드를 이용해 해결할 것임
//그리고 이 문제에서 주의해야 할점은 문제 다이얼 사진을 보면 0과 1에는 알파벳이 배정이 되어있지 않음
//즉 다이얼에서 0과 1은 쓰지 않음
//영어 입력받음
string input = Console.ReadLine();
//결과 초시간
int resultSecond = 0;
//A~Z는 65~90임
//A를 뜻하는 index 65칸에 2를 넣고, Z를 뜻하는 index 90칸에 9를 넣는식으로 할거임
int[] asciiBox = new int[91];
//알파벳에 맞춰 asciiBox배열에 넣을 숫자 변수
//0과 1은 쓰지 않으니 2부터 시작
int dialNum = 2;
//숫자와 영어가 매칭된 것에 규칙성이 없음
//다른 숫자들은 영어가 3개씩 매칭되어있지만, 7과9는 4개씩 매칭되어있음
//그러므로 asciiBox배열에 숫자를 매칭시킬때 조건을 붙이면서 매칭시킬거임
for (int i = 65; i <= 90; i++)
{
//i가 다이얼 숫자가 바뀌는 분기점이되는 알파벳 D,G,J,M,P,T,W의 아스키코드일때
//dialNum을 1증가 시킨뒤 asciiBox에 저장할거임(규칙성을 못찾아서 코드가 좀 지저분해졌음..)
switch (i)
{
case 68:
dialNum++;
break;
case 71:
dialNum++;
break;
case 74:
dialNum++;
break;
case 77:
dialNum++;
break;
case 80:
dialNum++;
break;
case 84:
dialNum++;
break;
case 87:
dialNum++;
break;
}
asciiBox[i] = dialNum;
}
//내가 적은 알파벳 길이만큼 반복
for (int i = 0; i < input.Length; i++)
{
//아까 asciiBox와 dialNum을 매칭시킨 것을 이용할거임
//입력한 알파벳들을 하나하나씩 아스키코드 번호로 변환하여
//asciiBox의 index번호로 사용하여 다이얼번호를 가져올거임
//이때 다이얼번호가 걸리는 초시간은 (다이얼번호 + 1)임
//0은 어차피 안쓰니까 생각할 필요가 없음
resultSecond += asciiBox[(int)input[i]] + 1;
}
//출력
Console.WriteLine(resultSecond);
}
}
}
깔끔하고 간결한 방식
나는 char형과 char형을 비교하거나 char형과 int를 비교하여 아스키코드의 크기를 알아내는 방식이 가능하다는 사실을
이번에 처음 알게되었다.
아래는 링크 첨부
다이얼: 백준 5622번 (C#풀이, 7단계, 문자열) (tistory.com)
다이얼: 백준 5622번 (C#풀이, 7단계, 문자열)
규칙에 따라 문자에 대응하는 수를 출력하는 문제입니다. 목표 할머니는 전화번호를 문자로 기억합니다. 즉 어떤 단어를 생각하고 각 알파벳에 해당하는 숫자를 걸면됩니다. 또한 할머니는 숫
morm.tistory.com
[C#]백준 5622번 문제 풀이 :: 공부하는개미 (tistory.com)
[C#]백준 5622번 문제 풀이
# 문제 출제 사이트 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net # 문제
antstudy.tistory.com
그리고 이건 좀 신기한 방식인데 switch문의 case쪽에 <=를 사용하고 있다
[백준] C# : 다이얼(5622번) (tistory.com)
[백준] C# : 다이얼(5622번)
백준 단계별로 풀어보기 7단계 8번문제 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 문제의 핵심 1.
coding-of-today.tistory.com
내가 사용하려 했더니 이런 경고문구가 떴다
'관계형 패턴'이라는 키워드가 나오는데 아마 설명으로 짐작해보니 c#이 업데이트되면서 새로운 기능이 추가된 것 같다.
나중에 한 번 알아봐야겠다.