log.Sehee
TIL / 3/24 / 프로그래머스 - 전력망 나누기 본문
문제
사실 아직도 문제를 정확히 파악을 못해서 그냥 리스트 속의 리스트로 [ ...[98,99],[99,100]] 이런 식으로라도 도출해보려하였다.
시도
이것이 첫 시도는 아니지만.. 일단 리스트 속 리스트를 만들어어야 하고 2~100 사이의 자연수, 그리고 리스트의 뒷자리가 한 번 씩 중복 될 수 있다는 점이 있으니 그것까지 고려하여 아래의 식을 짜보았다.
n 자리에 100~3까지의 숫자를 넣으면서 반복문으로 돌릴 수 있으면 좋을 것 같은데.. 여기서부터 머리에 과부하가 오기 시작했고..
이번엔 .append에 range를 붙여보았다. append는 그냥 값을 붙여주는 거라서 range(100, 3, -1)이 그대로 출력되어서 나온다..
역시 멍청하면 몸이 고생한다는걸 이번에도 몸으로 깨달았다. 똑똑해지자 나 자신..
아무래도 위에서 뭔가 한가지 걸러주거나 함수 또는 변수를 만들어주고 시작해야 할 것 같아서 도전했지만 머리가 굳었는지 턱도 없는 식만 세우다가 결국 던졌다.. 사실 아직 내게는 이른 문제가 맞았지만 정답을 찾는 것도 아니였고 리스트 속 리스트의 2~100까지 2, 100 제외하고 한 번씩만 겹치는 2개로 이루어진 출력물을 원한 것 뿐이였는데 그렇게 어려운 것이였을까.. 참 ㅎㅎ..
뭐가 잘못되었을까 한참 고민했을 때 떠올린 것은 내가 만든 식은 이미 [n-1, n] 이 100번 들어가게 되는 리스트를 만들어내는 반복문을 만들어 낸 것이였다.. 그러니까 여기에서 for문을 추가하여 100~3까지의 숫자를 돌려가며 추가한다고 해도 그게 100개가 중복으로 들어갈 것이다.. 그걸 set으로 제거할 수 있었을까..? 이것도 쓰면서 생각해본다.. 근데 좋은 알고리즘은 아니였겠지..
해결
역시나 2단계는 맨땅에 헤딩이다 ^-^ 될 것 같으면서 뭔가 부족하다.. 지식이 모자란게 느껴진다
수업이나 완강해야하는데 문제 하나에 묶여서 머리만 깨졌다... Chat GPT한테 물어봤는데 내가 전혀 모르는 지식으로 답변을 해줬다..
알고 있는 지식이라면 이해하고 사용하기라도 했겠지만 모르는 것을 그대로 쓰기엔 내 마음에 들지 않아서 쓰지 않았다...
완강하고 재도전 해야지 ^^,,,
배운 점
간단히.. 구현할 수.. 있다.. 리스트 컴프리핸션이라는 것이 있다고 한다.. 첨 들어보는 용어에 얼이 빠졌다..
난 아직 한참 멀었다 갈길이 멀다,, 너무 멀어..