본문 바로가기

프로그래머스107

코딩테스트 연습 > 주식 가격 - JAVA https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 나의 생각 https://fall-in-dream.tistory.com/72 코딩테스트 연습 > 뒤에 있는 큰 수 찾기 - JAVA https://school.programmers.co.kr/learn/courses/30/lessons/154539 풀이 - 나의 생각 뒤에 있는 나보다 큰 수를 찾는 것이기 때문에 뒤에서부터 찾으면 수월할 거라고 생각을 했다. 최악의 경우 1, 1, 1 ,.. 2024. 1. 10.
Summer/Winter Coding(~2018) > 방문 길이 - JAVA https://school.programmers.co.kr/learn/courses/30/lessons/49994 풀이 - 나의 생각 1 -> 2 로 넘어갈 경우 방문 길이는 체크 되지만 2-> 1 방향으로 가는 경우는 체크 되지 않아야 한다. 기존에 하던 것처럼 2차원 배열로 방문처리 할 경우 위의 경우는 가능하지만 3 ->2나, 4->2, 5->2 같은 경우 방문 길이가 늘어나야 하지만 2가 이미 방문처리 되어 늘어나지 않는다. 그걸 어떻게 코딩할까 고민을 하다가 방문처리를 3차원으로 하면 되겠다고 생각했다. [방향][맵][맵] 이런 식으로해서 들어온 방향 + 반대 방향을 방문 처리 해주면 그 외에 방향에서 들어오는 건 방문 길이가 추가 되게 할 수 있다!! 코드 import java.util.*; .. 2024. 1. 10.
코딩테스트 연습 > 뒤에 있는 큰 수 찾기 - JAVA https://school.programmers.co.kr/learn/courses/30/lessons/154539 풀이 - 나의 생각 뒤에 있는 나보다 큰 수를 찾는 것이기 때문에 뒤에서부터 찾으면 수월할 거라고 생각을 했다. 최악의 경우 1, 1, 1 , 1 , 1 , 1 , 1 , 1 --------------------------, 9 이런 경우 단순히 반복문으로 i = 0,1,2,3 --- n-1 의 경우 i = n 까지 뒤져 봐야 하는데 너무 비효율적이라고 생각했기 때문이다. 결국 문제는 나보다 큰 수가 어디 있을지 모르는 것이다. 그래서 뒤에서부터 찾기로 했다. Stack을 사용(여기서는 Deque를 사용했지만)해서 값들을 저장하는데 나보다 큰 값을 찾을 때까지 Stack에 있는 값들을 다 .. 2024. 1. 9.
2018 KAKAO BLIND RECRUITMENT > [3차] 압축 - JAVA https://school.programmers.co.kr/learn/courses/30/lessons/17684 풀이 - 나의 생각 1. List에 알바벳 A ~ Z를 넣는다. 2. LZW 압축 진행 2-1. 주어진 문자열을 한글자씩 가져온다. (현재 문자열이 W, 다음 문자열 C) 2-2. W+C가 List에 있는지 확인 Y -> W = W+C, C는 원래 C의 다음 문자열, 2-2로 N -> List에 W를 넣고 List에서 W의 위치를 answer에 저장, 2-1로 1은 그냥 for문으로 알파벳을 넣어줬다. 다른 좋은 방법 아시는 분은 댓글 부탁드립니다. W, C는 W+C가 List에 있으면 계속해서 쌓여간다. 예를 들어 W+C가 계속해서 List에 없었던 문자라고 가정을 하겠다. No. W C .. 2024. 1. 6.
코딩테스트 연습 > 이중우선순위큐 - JAVA https://school.programmers.co.kr/learn/courses/30/lessons/42628 풀이 - 나의 생각 PriorityQueue를 2개 쓰면 된다. (한개는 최솟값, 한개는 최댓값을 위한) PriorityQueue는 기본적으로는 오름차순으로 정렬된다. 내림차순을 원한다면 PriorityQueue pq = new PriorityQueue((a, b) -> Integer.compare(b, a)); 이런식으로 해줘야 한다. 코드 import java.util.*; class Solution { public int[] solution(String[] operations) { PriorityQueue maxQueue = new PriorityQueue((a, b) -> Intege.. 2024. 1. 5.
코딩테스트 연습 > [1차] 캐시 - JAVA 풀이 - 나의 생각 중요한 점 1. 캐시 교체 알고리즘은 LRU(Least Recently Used)를 사용한다. 2. Cache Size가 0일 경우가 있다. 3. 대 소문자 구분이 없다. 처음에 문제를 이해하는데 좀 시간이 걸렸다.... 1. 캐시 교체 알고리즘은 LRU(Least Recently Used)를 사용한다. 에 대해 생각해봅시다. LRU가 뭐지? 라고 생각했다가 단어를 보니 대충 아 최근에 사용한 것들을 캐시에 넣어놓는 방법이겠다 라고 생각했고 주어지는 cache size는 저장하는 캐시의 최대 개수겠다고 생각했다. 그래서 이 생각을 토대로 주어진 test case를 풀어보니 정답이 나와서 그렇게 풀었다. 즉. LRU는 최근 사용된 것을 캐시에 저장한다. 저장할 수 있는 캐시의 개수는 c.. 2023. 12. 31.