일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 동적계획법
- 프로그래머스
- VAR
- 컴퓨터비전
- 2018 KAKAO BLIND RECRUITMENT
- 컴퓨터 비전
- 구현
- JavaScript
- dp
- level3
- 자바
- 백준
- java
- 브루트포스
- 삼성SW역량테스트
- Lv3
- 누적합
- 유니온파인드
- 2021 KAKAO BLIND RECRUITMENT
- level2
- 2022 KAKAO BLIND RECRUITMENT
- 코틀린
- const
- js
- 호이스팅
- lv2
- BFS
- 자바스크립트
- 2023 KAKAO BLIND RECRUITMENT
- kotlin
- Today
- Total
목록level2 (5)
코드를 느껴바라
문제 링크성공 여부(걸린 시간): 성공(31분 52초)아이디어처음에는 일단 전부 BFS를 돈다고 했을때도 충분할 것 같다고 생각했고 (열만 다르면 중복해서 탐색함 ㅎㅎ..)계산해보니 최대 25000번 BFS를 돎 근데 BFS에서 한번에 최대 25000개의 블록을 방문할때25000^2 = 625000000 10초내로 가능하다고 생각하고 했더니 시간초과가 떠서 부분점수를 받게되었다. 그래서 느낀점 아슬아슬할때는 그냥 안전한 방법으로 하자 시간을 줄일 수 있는 방법을 고안해보았다. 사실 코드를 작성하다 생각났지만 외면했던 아이디어 BFS를 열마다 새롭게 전부 돌지않고 해당 석유 덩어리를 돌고 석유의 양을 전부 세었을때그 석유덩어리가 걸쳐있는 모든 열에 석유의 양을 마지막에 + 해준다.어떤식으로 했냐면 걸치는 ..
문제 링크성공 여부(걸린 시간): 실패(56분 5초)아이디어일단 처음에 생각한 순서는 이러했다.1. 소문자로 바꾼 헤드 기준으로 사전순 정렬2. head가 같으면 number 작은 순으로 stable하게 정렬3. 넘버도 같으면 들어온 순서 그대로4. 마지막에 도출된 순서대로 원본 파일명을 순서대로 넣어주고 return 일단 이렇게 하기 위해서 어떻게 문자열을 저장할건지가 관건이었다. 난 HashMap으로 소문자인 헤드가 key, 원본 head, 원본 number부분과 원본 tail을 나누어 저장하고추가로 int로 바꾼 nuber도 같이 저장해줄 (우선순위큐에 넣을때 int로 바꾼 number기준으로 정렬하기 위함)node로 저장한 우선순위큐를 value로 저장했다. 정렬기준은 처음에는 number 오름..
문제링크성공 여부(걸린 시간): 성공(32분 47초)아이디어일단 문제에서 중요한 키포인트는 한 차량이 들어가고 나가는것이 여러번이 될 수 있다는 것이고그때마다 정산하는 것이 아닌 일괄적으로 23:59에 정산한다고 생각을 하고 문제를 풀어야한다.순서대로 설명해보겠다. 출입차처리그래서 나는 한 차량에 대한 누적시간을 저장해줄 HashMap하나 그리고 최근 들어온 시간을 기록해줄 HashMap하나총 2개의 HashMap을 생성했고 이 2개에 저장된 정보를 바탕으로 마지막에 일괄계산 해주었다. 우선 전체적으로 보면 records의 차량 기록을 하나씩 돌면서 출차, 입차 처리를 수행해 주었다. ⭕입차는 lastCome 맵에 최근 들어온 입차처리만 해주면 끝이고 ❌출차는 해당 차에 대한 sumTime기록이 있다면 ..
문제 링크아이디어1. 내가 생각한 아이디어는 8개의 캐릭터를 8!로 일렬로 나열한다. -> 백트레킹으로 조합하여 ArrayList에 저장2. 길이가 8이 되었을때 순서대로 나열한 ArrayList에서 indexOf로 index를 받아와 조건에 있는 두 캐릭터의 index차이를 구해서조건에 부합하는지 operand에 맞게 검사해주고 만약 조건에 안맞으면 그냥 return3. 부합하는 경우에는 static result에 +1씩해준다.4. 마지막에 출력해주면 끝.정답 코드import java.util.*;class Solution { static int result; static char [] name; static String [] datas; public int solution(int..
문제 링크성공 여부(걸린 시간): 성공(36분6초)아이디어처음에 이 문제를 보고 엥 이게 Lv2라고 1아닌가 생각할 정도로 간단하게 구현해서 제출했는데 60점이 나왔다.내가 놓친 부분이 있었다. 그건바로 문제에서 LRU방식으로 구현하라 했는데난 miss가 났을때 큐가 가득차있다면 제일 앞에 있는 city를 빼고 있었던 것이었다.LRU(Least Recently Used) 이름 그대로 최근에 최소로 사용된이라는 뜻인데 운영체제 배울때 배운 스케줄링 기법이었다.만약 내가 이걸 모르는 상태로 풀었다면 문제 테스트케이스에도 나처럼 간단하게 풀어도 걸리지 않기에그냥 넘어갔을 것이고 시험때는 점수도 모르니 틀린지도 모르고 넘어갔을 생각을 하니 아찔했다. 각설하고 이제 어떻게 풀었는지 설명을 해보겠다.우선 난 캐시를..