문제
https://school.programmers.co.kr/learn/courses/30/lessons/178871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제이해 & 풀이
문제를 이해하는것 자체는 굉장히 쉽다. 가끔 이런 문제는 넌센스 같은 느낌으로 푼적이 있다.
설명
현재 달리고 있는 선수들(players)중에 해설진들이 선수를 호명(callings)하면 그 선수는 자신 바로 앞에 있는 선수를 제쳤다! 라는 뜻이다.
이 문제의 큰 산은 문제에 대한 이해가 아니라 시간복잡도이다. 문제의 조건 중 이러한 조건이 있다.
이 조건은 2중 for문의 시간복잡도(O(n2))에서 문제가 생긴다. callings의 제곱이 1억을 넘게 되면 시간초과가 발생할 수 있다는 것이다.
실패한 나의 코드
그래서 2번째안 해시함수를 사용하는것이다. 해시의 시간 복잡도는 O(n)으로써 전혀 문제가 되지 않는다는 것이다.
HashMap 을 이용해서 문제를 푸는것이 해답이다.
소스 코드
'코딩테스트 > 🧮 프로그래머스' 카테고리의 다른 글
🧮 [프로그래머스] 같은 숫자는 싫어(JAVA) (0) | 2023.08.06 |
---|---|
🧮 [프로그래머스] 공원 산책 (0) | 2023.08.04 |
🧮 없는 숫자 더하기 (0) | 2023.08.04 |
🧮 제곱수 판별하기(Math.sqrt) (0) | 2023.08.02 |
🧮 옷가게 할인 받기 (0) | 2023.08.02 |