Algorithm/BAEKJOON
[C#]백준 17176 암호해독기 - Hide
zz0zz9
2024. 10. 6. 23:35
반응형
반응형
https://www.acmicpc.net/problem/17176


문제 요약
두 번째 줄에 주어진 숫자 배열이 세 번째 줄의 문자 배열과 동일하면 'y', 아니면 'n' 출력하기
참고
실제 아스키코드에서
' ' = 32
'A' ~ 'Z' = 65 ~ 90
'a' ~ 'z' = 97 ~ 122
시간 초과
Console.ReadLine();
var t = Console.ReadLine().Split().Select(int.Parse).OrderBy(x => x).ToList();
var s = "";
foreach (var c in t)
{
if (c > 26) s += (char)(c + 70);
else if (c > 0) s += (char)(c + 64);
else s += " ";
}
Console.WriteLine(s == string.Join("", Console.ReadLine().OrderBy(x => x)) ? "y" : "n");
두 번째 줄에 입력받는 숫자 리스트를 반복문 돌려서 새로운 문자열 s에 추가
세 번째 줄에 입력받는 문자열을 정렬한 새로운 문자열과 s가 같은지 판별 후 y 혹은 n 출력하도록 했더니 45%쯤에서 시간 초과...
맞은 풀이
Console.ReadLine();
var t = Console.ReadLine().Split().Select(int.Parse).OrderBy(x => x).ToList();
var s = Console.ReadLine();
var l = new List<int>();
foreach (var c in s)
{
if (c > 96) l.Add(c - 70);
else if (c > 64) l.Add(c - 64);
else l.Add(0);
}
l.Sort();
Console.Write(Enumerable.SequenceEqual(t, l) ? "y" : "n");
세 번째 줄에 입력받는 문자열을 반복문 돌려서 새 리스트 l에 추가
l을 정렬하고 t와 같은지 판별 후 y 혹은 n 출력하도록 했더니 통과!
문자열은 되고 리스트는 안된다?
반응형