동식이 취업시키기 작전/코딩테스트
[백준] 9461 파도반수열(C#)
이동식이
2024. 1. 26. 17:52
728x90
문제
https://www.acmicpc.net/problem/9461
9461번: 파도반 수열
오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의
www.acmicpc.net
처음에 이미지보고 ??? 이랬는데, 삼각형을 보고 삼각형의 각 변을 나열해보니 규칙성을 찾을 수 있었다.
코드
using System;
using System.Text;
using System.Collections.Generic;
namespace dongsik
{
class Algorithm
{
static void Main(string[] str)
{
int input = int.Parse(Console.ReadLine());
for(int i = 0; i < input; i++)
{
int num = int.Parse(Console.ReadLine());
long[] arr = new long[num];
long init = 1;
if(num <= 3)
{
Console.WriteLine("1");
continue;
}
arr[0] = arr[1] = arr[2] = init;
for(long j = 3; j < arr.Length; j++)
{
arr[j] = arr[j-3] + arr[j-2];
}
Console.WriteLine(arr[num-1]);
}
}
}
}
고민
위 조건으로 문제를 풀었고 처음엔 틀렸다. 손으로 디버깅해봐도 이유를 못찾았는데, int형이 100을 넘으면 음수가 나오는 이슈가 있어서 long타입으로 변경했더니 맞았다!! 타입의 중요성을 다시 상기했다.