코드 왜 못풀었을까 끝점 기준 정렬을 할 생각을 못했다. 끝점 기준 정렬할 생각을 왜 못했을까 끝점을 어떻게 활용할지 고려하는 부분에서 선택을 잘못했다. 왜 잘못했는가 관성적으로 이전에 사용했던 시작점과 끝점을 1차원 배열에 담는 풀이를 선택했다. 생각이 부족했다 논리적 결함은 무엇이었나 그룹을 짓는 것을 생각하지 못했다. 하나의 선으로 겹쳐보이게 만들 수 있는 전체 선분들을 모으기 위해서는 끝점을 정렬했어야 했다. 내가 사용한 풀이는 겹치는 선분들 중 끊어지는 것이 있는것은 판단할 수 있지만, 그 그룹에서 가장 멀리있는 끝점을 고르지는 못했음. 어떻게 고칠까 선분이 겹치는 케이스를 스스로 만들어봐야함. 의식적으로 엣지케이스를 찾고 결함이 있음을 찾는 연습을 하자
핵심 왼쪽에 비어있는 게 없으면, 현재 들어오는 녀석보다 큰것 그러므로 결과값에 1을 더해준다. 만약 새로 들어올 사람의 키가 왼쪽보다 크거나 같으면 빼기 시작한다 여기서 중요한 것이 저장한 인원수 키가 같은 사람들이 붙어있으면 그 사람들을 합해서 생각해야한다 이부분까지는 빠르게 고려를 했는데, 인원수를 더하는 계산을 정리하지 못함. 동일하거나 키가 작은 사람들을 모두 소거하고나면 왼쪽에 남아있는 것은 키가 큰 사람들이라는 사실을 계속 망각하고 남은 사람들을 모두 고려하려고 하는 실수를 함. 그냥 result+1 해주면 왼쪽 고려 끝남 그림을 그리면서 풀어야겠다. 코드
서론 java의 stack trace를 보면서 exception이 무엇으로 처리되는지, 처리되는 과정은 어떻게 되는지 궁금해서 찾아보기 시작. Error vs Exception Error 시스템에 비정상적인 상황이 생겼을 때 발생한다. 시스템레벨에서 발생하므로 심각한 수준의 오류. 개발자가 미리 예측하여 처리할 수 없으므로 애플리케이션에서 오류에 대한 처리를 신경 쓰지 않아도 됨. -> 시스템에 변화를 주어 문제를 해결해야 함. Exception 개발자가 구현한 로직에서 발생. 즉, 예외는 발생할 상황을 미리 예측하여 처리가 가능. 예외를 구분하고 그에 따른 처리 방법을 명확히 알고 적용하는 것이 중요하다. Throwable class 구조 nextree 여기서 중요한