알고리즘 풀이

[C#] 백준 13909번 문제풀이

bimtaeur30 2026. 1. 31. 17:49

문제번호: 13909

문제명: 창문 닫기

문제링크: https://www.acmicpc.net/problem/13909

문제내용과 예제 입/출력은 위 문제 링크에서 확인해 주시기 바랍니다.

 

안녕하세요. 오늘은 제곱근을 이용해서 답을 도출해내는 문제를 풀었습니다. 처음 문제를 풀었을 땐 제곱근을 이용하지 않고 이중반복문으로 처리해보았는데 메모리 초과때문에 성공할 수 없었습니다. 그래서 N번째 창문이 열려있으려면 열고 닫은 횟수가 홀수이여야 한다와 N의 약수의 개수가 홀수개여야 하고, 이런 특성을 만족하는것은 제곱근이다라는 성질을 이용하였습니다. 따라서 주어진 범위의 제곱근을 내림하여 정수형태로 표현하면 답이 도출됩니다.

다음은 정답코드입니다.

 

public static void Main()
{
    Console.OutputEncoding = Encoding.UTF8;
    using var sr = new StreamReader(Console.OpenStandardInput());
    using var sw = new StreamWriter(Console.OpenStandardOutput());

    int N = int.Parse(sr.ReadLine());
    sw.WriteLine(Math.Sqrt(N));

    sr.Close();
    sw.Close();
}

'알고리즘 풀이' 카테고리의 다른 글

[C#] 백준 4659번 문제풀이  (0) 2026.02.02
[C#] 백준 11728번 문제풀이  (0) 2026.02.01
[C#] 백준 17478번 문제풀이  (3) 2026.01.30
[C#] 백준 1543번 문제풀이  (0) 2026.01.29
[C#] 백준 2018번 문제풀이  (0) 2026.01.28