차곡차곡 성 쌓기
article thumbnail
[프로그래머스] 택배 배달과 수거하기 level2 (Java) - 그리디

1. 문제성능 요약메모리: 102 MB, 시간: 39.17 ms구분코딩테스트 연습 > 2023 KAKAO BLIND RECRUITMENT 문제 설명당신은 일렬로 나열된 n개의 집에 택배를 배달하려 합니다. 배달할 물건은 모두 크기가 같은 재활용 택배 상자에 담아 배달하며, 배달을 다니면서 빈 재활용 택배 상자들을 수거하려 합니다.배달할 택배들은 모두 재활용 택배 상자에 담겨서 물류창고에 보관되어 있고, i번째 집은 물류창고에서 거리 i만큼 떨어져 있습니다. 또한 i번째 집은 j번째 집과 거리 j - i만큼 떨어져 있습니다. (1 ≤ i ≤ j ≤ n)트럭에는 재활용 택배 상자를 최대 cap개 실을 수 있습니다. 트럭은 배달할 재활용 택배 상자들을 실어 물류창고에서 출발해 각 집에 배달하면서, 빈 재활용 ..

article thumbnail
[프로그래머스] 석유 시추 - level2(Java)

1. 문제[본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.]세로길이가 n 가로길이가 m인 격자 모양의 땅 속에서 석유가 발견되었습니다. 석유는 여러 덩어리로 나누어 묻혀있습니다. 당신이 시추관을 수직으로 단 하나만 뚫을 수 있을 때, 가장 많은 석유를 뽑을 수 있는 시추관의 위치를 찾으려고 합니다. 시추관은 열 하나를 관통하는 형태여야 하며, 열과 열 사이에 시추관을 뚫을 수 없습니다.예를 들어 가로가 8, 세로가 5인 격자 모양의 땅 속에 위 그림처럼 석유가 발견되었다고 가정하겠습니다. 상, 하, 좌, 우로 연결된 석유는 하나의 덩어리이며, 석유 덩어리의 크기는 덩어리에 포함된 칸의 수입니다. 그림에서 석유 덩어리의 크기는 왼쪽부터 8, 7, 2입니다.시추관은 위 그림처럼 설치한 위치 ..

자바 코딩 테스트 필수 자료구조
알고리즘 2025. 1. 28. 21:12

자바 자료구조 문법큐Queue que = new LinkedList();// 꺼내기, 없어짐int cur = que.poll();// 꺼내기, 안없어짐int cur = que.peek();// 넣기que.add(cur);우선순위 큐PriorityQueue que = new PriorityQueue();// 꺼내기, 없어짐int cur = que.poll();// 꺼내기, 안없어짐int cur = que.peek();// 넣기que.add(cur);스택Stack stack = new Stack();// 꺼내기, 없어짐int cur = stack.pop();// 넣기stack.add(cur);리스트List list = new ArrayList();// 맨 뒤에 1 삽입list.add(1);// 2 자리에 3..

[프로그래머스] 퍼즐 게임 챌린지 level2- JAVA

문제당신은 순서대로 n개의 퍼즐을 제한 시간 내에 풀어야 하는 퍼즐 게임을 하고 있습니다. 각 퍼즐은 난이도와 소요 시간이 정해져 있습니다. 당신의 숙련도에 따라 퍼즐을 풀 때 틀리는 횟수가 바뀌게 됩니다. 현재 퍼즐의 난이도를 diff, 현재 퍼즐의 소요 시간을 time_cur, 이전 퍼즐의 소요 시간을 time_prev, 당신의 숙련도를 level이라 하면, 게임은 다음과 같이 진행됩니다.diff ≤ level이면 퍼즐을 틀리지 않고 time_cur만큼의 시간을 사용하여 해결합니다.diff > level이면, 퍼즐을 총 diff - level번 틀립니다. 퍼즐을 틀릴 때마다, time_cur만큼의 시간을 사용하며, 추가로 time_prev만큼의 시간을 사용해 이전 퍼즐을 다시 풀고 와야 합니다. 이전..

article thumbnail
[Java] String의 split() 메소드 뜯어보기
CS/자바 2025. 1. 19. 20:19

코테를 풀다가 split()의 내부를 몰라 시간복잡도를 구할 수 없어서 공부해보고자 한다. 1. 호출String [] str = br.readLine().split("/");코드 작성 후 실행 후 "10/20/30/40"을 입력한다. 2. String의 split() 실행public String[] split(String regex) { return split(regex, 0);} 3. 구분자 포함여부가 있는 split() 실행private String[] split(String regex, int limit, boolean withDelimiters) { /* fastpath if the regex is a * (1) one-char String and this character is..