일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- level3
- Lv3
- java
- 동적계획법
- js
- level2
- kotlin
- 삼성SW역량테스트
- 구현
- 2023 KAKAO BLIND RECRUITMENT
- 호이스팅
- 코틀린
- 컴퓨터 비전
- 브루트포스
- BFS
- 2021 KAKAO BLIND RECRUITMENT
- dp
- 프로그래머스
- 컴퓨터비전
- JavaScript
- 누적합
- const
- 백준
- VAR
- 2022 KAKAO BLIND RECRUITMENT
- 자바스크립트
- 2018 KAKAO BLIND RECRUITMENT
- 자바
- lv2
- 유니온파인드
- Today
- Total
목록2021 KAKAO BLIND RECRUITMENT (2)
코드를 느껴바라
문제 링크성공 여부(걸린 시간): 1시간 55분 16초(성공)아이디어브루트포스로 전부 해보기엔 말도 안되는 시간이 나올것이라 생각해 카운팅소트처럼 하려고 했었다.그래서 시작과 끝을 순회하며 +1씩 넣어주며 그걸 누적합하여 adv_time을 텀으로 두어 차이를 구해 최대를 구하려했다. 🤔그런데 그것도 계산해보니 만약 play시간이 최대이고 전부 최대로 30만개가 들어오면+1씩 해주는 것만 해도 시간초과가 나는 상황이었다. 🐵그런데 불현듯 구간에 해당하는 모든 초들을 돌필요 없이처음에 1 그리고 끝 지점에 -1을 해주는 방식으로 처리를 한다. 예) 1~3초 (끝나는 시간은 카운트 않음)012345010-100누적합을 돌면 해당 초마다 로그가 몇개있는지 나오게 되고012345011000그걸 누적합을 한번 ..
문제 링크성공 여부(걸린 시간): 성공 (59분 31초)아이디어순서대로 설명해보자면1. info 처리 => 같은 조건인 점수들은 묶어서 저장처음에 생각한 것은 각 조건의 앞자리만 따서HashMap을 이용해서 key는 jbjp(각 조건의 첫자리만 땀. 겹치는 경우가 없기에 가능)value는 ArrayList에 저장하고 qeury문을 수행할때 정렬하고 조건에 맞게 수행해주려고 했다. 그런데 그렇게 했다간 단순히 생각만 해도 최악의 경우 50000 X 100000즉, 약 50초 정도로 시간초과가 날것이라는 확신이 들었다.그래서 어떻게 처리해야 빠르고 간단하게 X 점수 이상의 점수 개수를 구할 수 있을까 생각해보았다. 불현듯 생각이 든것. 🔍 쿼리는 X이상의 값의 개수를 구하는 것으로 방향이 고정되어있다.!!..