백준 오답노트/정렬

백준 - 정렬 10814번 문제 틀린 이유 + 해결 완료

초보병일이 2022. 11. 19. 12:00
728x90

= 문제 =

= 처음 접근 내용 =

그 전에 문제에서는 2차원 배열을 이용해서 접근했었는데, 이번에는 List를 이용해서 더 편하게 정렬하고 내가 더 편하게 뽑아내자 ! 라는 생각으로 접근했다.

 

어차피 앞에 숫자만 길이가 같고 그거 파싱해서 내가 원하는 값을 그대로 뽑아내면 되잖아?

라고 이런 식으로 접근을 했었는데, 런타임 오류가 발생했다.

 

왜 그러지 계속 생각하고 생각해도 이유를 못 찾았는데... 하루가 지나서 드디어 해결!

 

= 틀린 이유 =

 

나이가 2자리만 받을 수 있는 환경이면 subString을 이용해서 나이 비교를 할 수 있지만,

1~200까지 입력이 가능하기 때문에 List에 저장해서 subString을 활용할 수가 없다.

 

그래서 이전 문제와 같은 방식으로 2차원 배열을 이용해서 해결했다.

 

= 해결 후 코드 = 

 

2차원 배열을 이용해서 0번째에 있는 인덱스, 즉 나이 들만 비교를 할 수 있게 만드는 것이다.

 

기본 return값은 나이순으로 1차 정렬 시키고 -> ( 값이 음수일 때 오름차순으로 정렬 )

 

문제에 제시된 것 처럼 나이가 같을 때는 입력 순서대로 출력 - 즉 0을 return하면 된다.

 

이번 국비를 수료하고 프로젝트를 마무리 하고 싶었는데... 게으른 탓에 뒤로 미루긴했지만..

우테코 프리코스도 진행하고 백준 알고리즘도 진행하다보니까 생각하는 힘이 길러지고 내 순수 실력 자체도 늘었다.

 

처음에 이런 문제를 전혀 해결하지 못했었는데 점점 성장하는 내 모습을 보니까 뿌듯하고 

 

나한테 백준은 온라인게임 같다. 백준 티어가 오를 수록 롤 티어가 오르는 느낌처럼 기분이 최고!

 

더 열심히해서 지금보다 더 잘해지자!

728x90