알고리즘..Deep...;;

김성수·2022년 9월 25일
0

회고

목록 보기
2/11

흠...
그래...
알고있다..
요즘 블로깅 너무 쉬었다...

지금 내가 자료구조/알고리즘 늪에 빠졌다..

그 중에 골머리 앓았던 한 문제가 있다.. 저작권상, 다 말해주지 못한다.
대강 이렇다.
프린터가 하나 있다. buffer가 주어지고, 인쇄대기 목록이 있고, buffer에는 주어진 크기만큼만 인쇄대기목록 항목이 들어갈 수 있다..
(예시 들면, 뭔가 나 잡혀갈 것 같다..문제 유출 되면 안됨.. 저작권 걸려서...;; 그냥 대충 알아듣길 바라는 바다.)

나는 인텔리제이 IDE를 쓴다. (극으로 상관없는 얘기) 문제 요구사항대로 하나의 예시를 만들어서, 이런 상황이면, 어떤식으로 나와야 되는지 먼저 한번 생각해보고, 끄적여봤다. 근데, IDE로는 내가 생각한 거랑 다르게 나온다...

while문으로 반복문을 돌렸는데, 중간 중간 sout으로 내가 확인하고 싶었던, 요소들을 확인해보니, 아니나 다를까...생각대로 나오다가 어느 시점에 생각한 대로 안 나왔다...
그래서 하나를 잘 수정했다..? 근데, 또 뭔가 안 된다? 그래서 그거 하나 수정 했다...? 근데 또 뭐가 안된다...? 특히 주어진 크기만큼만 인쇄목록에 Queue를 들어올 수 있게 하냐, 안 하냐를 코딩하는데, 진짜 고민했다...

그리고 이번 문제에서 많이 대였던 것 같다. 사실 4시간을 보면서도, 나는 이번 문제는 풀지 못했다. 근데 3일 뒤인 오늘 한번 풀어보았는데, 11시부터 2시간 가까이 손댓던거 같다. 1시간 만에 거의 다왔는데, 그 1시간을 해맸다..

사실 Refer를 보긴했다.. Refer보고도 잘 몰랐는데, 대충 감은 왔고, 그리고 지금 코딩하는데도 사실 Refer 생각은 잘았났다.

Queue는 인터페이스인데, LinkedList로 구현했다만, 사이즈를 지정하면서, 생성하는 생성자가 소스코드에 내가 보기엔 없었다..
그냥 상속된 클래스or인터페이스 쫓아가다보니, size가 10이 기본값인데, 그냥 10이상 넣으면, 그대로 사이즈가 커지고, 작게 되면 작게 되는식이라..여튼..
다 뒤져봤는데, 그냥 하나 들어오면 그 사이즈가 그 사이즈고, 빠져나가면, 빠져나간만큼 사이즈가 줄어드는.. 가변이였다..

여튼 그래서, 어떻게 버퍼만큼 칸을 지정하지? 생각했는데, 레퍼보고,, "아~ 이런식으로~" 라고 했지만, 저 부분만 참고했지.. 사실 기억 안 나서, 느낌만 이해하고, 그냥 알아서 코딩했다. 결국은 이번에 2시간만에 해냈다...

그리고 나는 아직 사실 코드의 중복이니, 마니, 더럽니, 간결하니..등등
이런 부분들을 고려하기엔 내 레벨이 아직 많이 부족하다. 근데 따졌다..ㅠㅠ

뭔가 체크를 하는 특정 코드를 특정 부분마다 계속 넣어서 값을 확인하게 했어야 했는데,, 코드 중복따진다고(주제에..ㅜ), 중복해야될 코드를 한번만 사용하다가... 결국 특정부분에 한번 더 체크하게 하니, 풀리더라... 그리고 그렇게 해야만 풀리던 거였다..ㅜㅜ

여튼 문제가 풀리니 기분은 너무 좋다..

역시 나는..

어차피 잘 될 놈이다...

profile
쌩수 Git >> https://github.com/SsangSoo?tab=repositories

0개의 댓글