using System;
namespace Baekjoon
{
internal class Program
{
static void Main(string[] args)
{
//그냥 콘솔창 예쁘게 꾸미는 코드(심심해서 넣음)
Console.BackgroundColor = ConsoleColor.DarkCyan;
//규칙 : 맨 첫번째 1을 제외하고 6씩 칸의 둘레가 커짐
//1칸, 6칸, 12칸, 18칸, 24칸...
//단, 방의 총 갯수가 6칸씩 늘어나는게 아니라 둘레별로 방의 크기가 6칸씩 늘어난다는 것에 유의
//답을 구하는 방법은 내가 선택한 숫자가 몇번째 둘레에 있는지만 알면 됨
//내가 알고 싶은 숫자가 포함된 둘레의 순서가 정답임
//입력값 받아옴
int input = int.Parse(Console.ReadLine());
//둘레값(반복값) 변수이자 출력할 정답
int roundCount = 1;
//현재 만들어진 방의 총 개수
int room = 1;
//현재 방의 개수가 내 입력값 보다 적으면 반복하여 방의 개수를 규칙에 따라 늘려줌
//만약 내 입력값이 현재방의 개수보다 크다면
//내가 원하는 방은 아직 생성되지 않았다는 뜻이 됨, 그러므로 방을 규칙에 따라 늘려줌
while (room < input)
{
//방의 총 개수 = 이전에 만들어진 방 개수 + 6 * 이전 방의 둘레순서
room = room + 6 * roundCount;
//둘레 1증가 해줌(이게 윗줄에서 만들어진 방들의 둘레순서임)
roundCount++;
}
//결과 출력
Console.WriteLine(roundCount);
}
}
}
내가 규칙 찾으려고 그림판으로 색깔 넣어 그린 그림이다
그림을 보면 진한 색깔의 칸들은 6개를 유지하는 것을 볼 수 있고
연한 색깔의 칸들은 3번째 둘레부터 6개가 생성되어 둘레가 커질때마다 그 배수로 늘어나는 것을 볼 수 있다
쉽게 말하면 첫번째 둘레(빨간칸 1)를 제외하고 6씩 커지고 있는 것이다
'백준' 카테고리의 다른 글
백준 2869번 c# (0) | 2024.01.28 |
---|---|
백준 1193번 c# (0) | 2024.01.27 |
백준 2903번 c# (0) | 2024.01.26 |
백준 2720번 c# (0) | 2024.01.25 |
백준 11005번 c# (0) | 2024.01.25 |