알고리즘/programmers

[Programmers] n^2 배열 자르기

꾸준함. 2021. 10. 28. 22:34

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/87390

 

코딩테스트 연습 - n^2 배열 자르기

정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부

programmers.co.kr

입출력 예 설명 gif를 보면 쉽게 풀 수 있는 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. 3 * 3 배열을 기준으로 1 2 3 / 2 2 3 / 3 3 3과 같은 형태이므로 몫과 나머지를 통해 결과를 구할 수 있다는 것을 알 수 있습니다.

2. 따라서, [left, right]까지 순회하며 n으로 나누었을 때 몫과 나머지를 구합니다.

2.1 나머지가 몫보다 크다면 (나머지 + 1)을 저장하고 나머지가 몫보다 작다면 (몫 + 1)을 저장합니다.

2.2 2.1이 이해가 가지 않다면 gif를 한번 더 확인해보시기 바랍니다.

3. 2번에서 구한 배열을 반환합니다.

 

 

개발환경:Visual Studio 2017

 

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형