반응형
2번을 풀다가 문제를 잘못 이해했다는걸 깨닫고 허무해져버려서 눈도, 몸도 너무 피곤했던 나는 누워서 좀 쉬다가 다시 풀어봤다. 머리도 아프고... 시험이나 면접 있는거 아닌 이상 어디 잘 안 돌아다니는데 건강 이상있는건 아니겠지 ㅠ_ㅠ 호에엥😣
아무튼 이 문제도 처음엔 Java로 하려다가 어쩌다보니 Python3으로 풀었다.
# date: 2020/09/10
# author: psS2mj
# brief: 프로그래머스 월간 코드 챌린지 시즌1 (9월) - 2번
def solution(n):
answer = []
result = [[0 for x in range(n)] for y in range(n)]
num = 1
x = -1
y = -1
for i in range(n):
for j in range(i,n):
if i % 3 == 0:
x+=1
y+=1
elif i % 3 == 1:
y-=1
else:
x-=1
result[x][y] = num
num+=1
for i in result:
for j in i[::-1]:
if j != 0:
answer.append(j)
return answer
처음에 문제 잘못봐서 row마다 값을 다 더하는건 줄 알고....😂
삽질 좀 하다가 어찌저찌 해결하긴 했다.
이차원배열을 받는 result = [[0 for x in range(n)] for y in range(n)] 이 부분 때문에 엄청나게 삽질을 했다.
원래는 result = [[0] * n] * n 이렇게 코드를 구현했었는데, 이 방식으로 이차원배열을 선언하고 사용하니 한 row의 어떤 위치의 값이 바뀌면 다른 row의 같은 위치값들도 싹 다 똑같은 값으로 바뀌는거다. 그거 해결한다고 삽질 엄청 했다...😭
나중에 알고 보니 내가 처음에 짰던 방식으로 구현하면 모두 같은 데이터를 가리킨다고 하던데 이건 좀 더 자세히 찾아봐야할 것 같다. 휴, 새로운 언어를 (데이터 분석할 때 사용해보긴 했지만..) 알고리즘 용으로 기초문법부터 상세한 문법까지 다 알려고하니 생각보단 좀 빡세다. 그래도 문제 계속 풀다보면 늘거라고 믿어의심치 않는다^_^
- 이번 챌린지는 2번 문제까지 풀고 끝!!👩🏻👋🏻 -
반응형
'🥇Problem Solving (psS2mj) > Programmers' 카테고리의 다른 글
[프로그래머스] 문자열 내 p와 y의 개수 (Python3) (0) | 2020.09.12 |
---|---|
[프로그래머스] 월간 코드 챌린지 시즌1 (9월) - 1번 (Python3) (0) | 2020.09.12 |
[프로그래머스] 프린터 (Java) (0) | 2020.05.20 |
[프로그래머스/SQL] 역순 정렬하기 (MySQL) (0) | 2020.04.14 |
[프로그래머스/SQL] 모든 레코드 조회하기 (MySQL) (0) | 2020.04.13 |
댓글