백준 온라인 코딩 문제풀이
Baekjoon Online Judge
Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.
www.acmicpc.net
코드 참고
wny0320 (박 상운)
Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.
replit.com
5622번만 다룸
5622
using System;
class Program
{
static void Main(string[] args)
{
string str = Console.ReadLine();
int time = 0;
foreach (char i in str)
{
time += (i - 65) / 3 + 3;
if (i == 'S' | i == 'V' | i >= 'Y')
time--;
}
Console.WriteLine(time);
}
}
A~Z의 아스키 코드값은 65~90
그리고 시작지점은 숫자 2부터 시작이므로 시간은 3초부터 시작
문자열을 받아 foreach문으로 반복문을 돌려 char 형탸의 문자를 확인
그 문자의 아스키 코드값 - 65('A')에 /3을 하면 시작 지점부터 몇번쨰에 해당하는 숫자인지 알 수 있음
추가로 시작 숫자가 3초이므로 +3을 해줌
하지만 7번과 9번에 알파벳이 4개씩 부여되어서 /3의 값이 부정확하므로 if문을 통해 해결
-처음 밀리는 'S', 'S'때문에 한칸 밀린 'V' 그리고 두칸씩 밀린 'Y','Z' 를 연산할 시에는 시간 값 -1을 해줌
사실 if문이나 switch문으로 노가다를 해도 되지만 코드가 아름답지 못하여 좀 더 찾아보고 풀어보았음
'BaekJoon[C#]' 카테고리의 다른 글
문자열 단계 1316 (0) | 2022.10.04 |
---|---|
문자열 단계 2941 (0) | 2022.10.03 |
문자열 단계 1152 (0) | 2022.09.27 |
문자열 단계 2675 (0) | 2022.09.26 |
함수 1065 (0) | 2022.09.25 |