본문 바로가기

브루트 포스

[프로그래머스] n*2 배열 자르기 문제 풀이 java 1. 문제 설명문제링크2차원 배열의 값을 집어넣고, 그것을 1차원 배열로 늘어뜨려서, 문제에서 원하는 구간 내의 숫자들을 묶어서 반환하는 문제이다.2. 접근 방식KEY WORD: Brute Force, 1차원 배열과 2차원 배열의 위치 관계해당 문제는 n의 maximum이 10^7이므로, O(n)을 초과하는 시간 복잡도를 사용하지 못한다. 따라서 2차원 배열에 값을 다 집어넣고, 그것을 1차원으로 만드는, 마치 문제에서 지시한대로는 풀이를 하지 못한다. 또한 1차원 배열을 바로 만들더라도, n*n은 배열의 메모리를 초과하는 값을 초래할 수 있기 때문에 1차원 배열 전체를 만드는 것도 무리다.따라서 우리는 정확히 left ~ right 까지의 배열을 만들어 값을 구해 반환해야 한다.(1) 1차원 배열 2.. 더보기
[프로그래머스] 행렬 테두리 회전하기 문제 풀이 java 1. 문제 설명문제 링크(1) 회전 시킬 부분 행렬의 좌상단, 우하단의 List가 주어진다.(2) List의 값마다 행렬을 시계 방향으로 회전시킨다.(3) 회전할 때, 움직였던 값 중 가장 작은 값들을 모아서 반환한다.2. 접근 방식KEY WORD: BRUTE FORCE, 배열 회전배열 회전은 브루트 포스 문제를 풀 때 단골로 나온다. 코딩 테스트에서도 배열 회전이라는 키워드가 단독으로 문제에 나오지 않지만, 문제의 조연으로는 자주 등장했던 것 같다. 그래서 회전하는 법에 대해 알아두는 것은 중요하다.문제에서, 회전하는 모습을 친절하게 예시로 알려준다.14 -> 8의 자리로, 8이 9의 자리로 시계 방향으로 움직이고 있음을 볼 수 있다.그렇다면 구현을 할 때는 어떻게 해야할까? 구현할 때는 반 시계 방향.. 더보기