2021. 9. 27. 17:29ㆍ알고리즘/문제 풀이
직각삼각형이란 데이터의 위치가 직각 삼각형 모양을 띄고 있는 형태를 말하는데요.
형태는 아래와 같은 형태를 띌 수도 있고 반대의 형태도 있고 그밖에도 여러 형태를 띌 수 있겠죠.
아래의 형태를 예시로 들어 알고리즘 풀이를 해보겠습니다.
데이터가 들어가는 순서를 보면 행은 고정된 상태에서
열에 따라 오른쪽으로 데이터가 들어가는 걸 볼 수 있습니다.
행고정 열변화 형태인데요.
행고정 열변화에 대해서는 포스팅을 참고해주세요!
https://ho-ding.tistory.com/52
행을 i, 열을 j로 선언한다면
행 i 변수의 반복할 규칙은 i = 1, 5, 1 (시작값, 끝값, 증가값)으로 단순하나
열 j 변수의 규칙은 끝값을 상수로 처리하기가 어렵습니다.
위와 같이 변수 j 는 1행에서는 1열, 2행에서는 2열...
이렇게 종료되는 값이 변하기 때문에 반복할 규칙을 상수 처리를 할 수 없는데요.
이때 종료되는 값을 보면 행의 값에 따라 열도 종료되는 걸 알 수 있습니다.
그래서 반복할 규칙 중 끝값을 i 로 변수 처리를 하면 됩니다.
따라서 j = 1, i, 1 이 되는 겁니다.
다음과 같이 순서로 데이터가 들어가는 직각삼각형 모양을 띈다면 규칙은 어떻게 될까요?
이번에는 변수 j 가 1행에서는 5열, 2행에서는 4열 순으로 데이터가 들어가는 형태입니다.
전에는 행과 반복이 종료되는 값이 같아 반복할 규칙 중 끝값으로 변수 i 를 넣어서 처리했지만
이번에는 전과 같이 처리할 수 없는 형태인데요.
위의 표를 잘 보면 열과 종료되는 값을 더하면 6이 나오는 걸 알 수 있습니다.
더한 값 6에서 - i 를 하면 반복이 종료되는 값이 나오게 되죠.
따라서 j = 1, 6-i, 1 이 됩니다.
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[알고리즘] 90도 회전 (0) | 2021.10.08 |
---|---|
[알고리즘] 다이아몬드 만들기 (0) | 2021.10.07 |
[알고리즘] ㄹ자 채우기 (0) | 2021.10.06 |
[알고리즘] 에라토스테네스의 체를 이용해 소수 구하기(JAVA) (0) | 2021.09.24 |
[알고리즘] 분수 수열 덧셈 (0) | 2021.09.23 |