
💗풀이과정💗
입력값 = n, left, right
1. n*n의 2차원 배열을 만든다. 값은 0으로 초기화
2. i * i 행까지 값을 i로 넣는다.
3. 2차원 배열을 1차원 배열로 만든다.
4. 해당 배열에서 left부터 right까지의 배열만 쪼갠다
일단 여기서 막혔던 부분은
2번.. "i * i 행 까지 값을 i로 넣는다"
이게 죽어도 안구해졌다.
다른사람의 풀이를 보니,
나처럼 위 풀이방법으로 하면 시간초과가 뜬다고 한다.
아무리 발악해도 안되는 문제풀이였다..
규칙을 찾아내야한다!!
그치만 아무리 생각해도 규칙도 찾아지지도않음..
여기 밑에 까지는 생각해냄.. !
n이 3일때
(0,0)(0,1)(0,2)
(1,0)(1,1)(1,2)
(2,0)(2,1)(2,2)
Max값으로 따지면
0 1 2
1 1 2
2 2 2
이렇게 뽑아낼수있다!! 여기까지는 겨우생각해냄
그이후엔?? 모르겠다.... 구선생 출동
사람들 풀이과정을 보니
2차원배열로 하지않고
1차원배열로 풀었다.
Index => 0 1 2 3 4 5 6 7 8
Value => 0 1 2 1 1 2 2 2 2
여기에서 Value값은 max(index%n, index//n)
대단하다..어떻게 이런생각을... 몇일을 고민해도 이생각은 못했을것이다.. 답을본게 신의한수 ㅎ
(다음에 잘 하면 되지.. 노력은 배신하지 않는다..!)
💗성공한 풀이과정💗
def solution(n, left, right) :
answer = []
for index in range(left, right+1) :
answer.append(max(index//n, index%n)+1)
return answer
'알고리즘 (JAVA) > 프로그래머스 알고리즘' 카테고리의 다른 글
[코테준비 - python] 프린터 level2 - 개발자배찌 (0) | 2023.01.05 |
---|---|
[코테준비 - python] 겹치는 선분의 길이 - 개발자배찌 (0) | 2022.12.17 |
[코테준비 - python] 멀리뛰기 level2 - 개발자배찌 (0) | 2022.12.17 |
[코테준비 - python] 신규 아이디 추천 level1 - 개발자 배찌 (0) | 2022.12.15 |
[코테준비 - python] 시저 암호 level1 - 개발자배찌 (1) | 2022.12.15 |