본문 바로가기
개발/문제풀이

문제풀이)프로그래머스)c#) 삼각 달팽이

by 테샤르 2021. 2. 13.

 삼각 달팽이

 

삼각형을 그리면서 달팽이를 순차적으로 만드는 문제로 진행 방향을 회전시켜서 만드는 문제이다.

처음에는 삼각형 모양의 데이터를 만드는데 집중했는데 실제 결과 데이터만 잘 만들면 된다.

중복 반복문을 통해서 진행 방향을 회전 시킨다.

처음에는 ↓(0,+1)으로 최대치까지 진행 이후에 →(+1,0) 방향, 그리고 ↖(-1,-1)으로 회전을 진행한다. n번만큼 회전을 하게 되면 끝난다. 순차적으로 value를 증가시키고 이후에 데이터가 존재하는 List를 리턴하는 것으로 진행한다.

URL : programmers.co.kr/learn/courses/30/lessons/68645#qna

 

코딩테스트 연습 - 삼각 달팽이

5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11]

programmers.co.kr

using System.Collections.Generic;
public int[] solution(int n)
    {
        List<int> answer = new List<int>();
        int[,] arr = new int[n, n];
        int value = 1; 
        int x = -1;
        int y = 0;

        for (int i = 0; i < n; i++)
        {
            for (int j = i; j < n; j++)
            {
                if (i % 3 == 0)     //진행방향 ↓
                    x++;
                else if (i % 3 == 1) // 진행방향 →
                    y++;
                else if (i % 3 == 2)    //진행방향 ↖
                {
                     x--; y--; 
                }
                arr[x, y] = value++;
            }
        }

        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                if (arr[i, j] == 0)
                    break;
                answer.Add(arr[i, j]);
            }
        }
        return answer.ToArray();
    }

 

 ★☆

 

반응형

댓글