728x90
🍒문제
삼각달팽이 : programmers.co.kr/learn/courses/30/lessons/68645
🍒풀이
1. 아래로 이동
2. 오른쪽 이동
3. 왼쪽 위 대각선 이동
위 3가지 이동방향에따라 2차원 배열로 처리를 해준다. 이후 2차원 배열에 있는 값을 1차원 answer 벡터에 차례로 담아주면 끝! 간단하게 생각하는 습관 기르기 !!
🍒코드
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int n) {
vector<int> answer;
int num = 1, y=0, x=0, dir=0; //입력 숫자, 행, 열, 방향
int arr[1001][1001] = {0};
for(int i=0; i<n; i++){
switch(dir){
//아래로 이동
case 0:
for(int j=i; j<n; j++){
arr[y++][x] = num++;
}
y-=1;
x+=1;
dir = 1;
break;
//오른쪽 이동
case 1:
for(int j=i; j<n; j++){
arr[y][x++] = num++;
}
y-=1;
x-=2;
dir = 2;
break;
//왼쪽 대각선 위로 이동
case 2:
for(int j=i; j<n; j++){
arr[y--][x--] = num++;
}
y+=2;
x+=1;
dir = 0;
break;
}
}
for(int i=0; i<n; i++){
for(int j=0; j<=i; j++){
answer.push_back(arr[i][j]);
}
}
return answer;
}
728x90
'코딩 테스트' 카테고리의 다른 글
[프로그래머스] 큰 수 만들기 (Python) (0) | 2021.03.18 |
---|---|
[프로그래머스] 조이스틱 (Python) (0) | 2021.03.18 |
[Codility] Lesson8. Dominator (0) | 2021.03.03 |
[Codility] Lesson4. Brackets (0) | 2021.03.03 |
[프로그래머스] 괄호변환 (C++) (0) | 2021.03.02 |
댓글