본문 바로가기

자바36

합승 택시 요금 - JAVA, 다익스트라 알고리즘(Dijkstra Algorithm) https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 - 나의 생각전형적인 다익스트라 알고리즘에다가 비교연산 한 번이 추가 된 문제입니다. 무지와 어파치가 각자의 목적지 'A' 와 'B'에 최소한의 비용으로 가는 방법을 알기 위해서는 결국에 모든 목적지에 최소한의 비용으로 가는 방법을 알아야합니다. 그렇기에 int[] distFromStart = dijkstra(graph, n, s);int[] distFromA = dijkstra(graph,.. 2024. 5. 25.
코딩테스트 연습 > 푸드 파이트 대회 - JAVA (문자열 뒤집기) https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 나의 생각 StringBuilder에 반절분을 저장한 후 "0" 추가 후 기존에 저장된 음식을 뒤집은 걸 append 해주면 됩니다. String의 경우 reverse 함수가 없지만 StringBuilder에는 reverse 함수가 있기에 이를 활용해 봤습니다. Stirng으로 하실경우 반복문으로 문자열의 뒤에서부터 하나씩 저장해가면 reverse된 문자열을 구하실 수 있습니다. 코드 .. 2024. 2. 24.
코딩테스트 연습 > 같은 숫자는 싫어 - JAVA (STACK) https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 나의 생각 별건 없고 Stack의 맨 위의 숫자가 현재 검사하는 숫자와 같으면 pass 다르다면 Stack에 넣어주면 끝입니다. 코드 import java.util.*; public class Solution { public int[] solution(int []arr) { Stack stack = new Stack(); stack.add(arr[0]); for(int num : arr).. 2024. 2. 24.
코딩테스트 연습 > 덧칠하기 - JAVA https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 나의 생각 현재 칠해야하는 위치(wall)가 현재 롤러의 위치(index)보다 크거나 같을 경우, 이 말은 새롭게 페인트를 칠해야한다는 말과 같습니다. 그렇기에 cnt를 +1 해주고 롤러의 위치(index)를 wall + m을 통해 페인트를 칠한 후의 위치로 옮겨 주면 됩니다. 그리고 롤러의 위치가 주어진 벽의 길이(n)를 넘어선다면 모든 벽을 칠한 것이기 때문에 break해주어 빠르게.. 2024. 2. 23.
코딩테스트 연습 > 다리를 지나는 트럭 - JAVA (Queue) https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 나의 생각 큐를 트럭과 다리를 담당하도록 2개를 선언했다. 1. Truck Queue 우선 Queue에 truck을 다 집어 넣는다. 2. Bridge Queue 우선 Queue에 다리 길이 만큼 0을 다 집어 넣는다. 이때 0은 truck이 올라가 있지 않다는 것을 의미한다. 3. 반복문 돌리기 while문으로 Bridge Queue가 비어 있지 않는 경우 반복문을 돌린다. 다리에 올라.. 2024. 2. 4.
월간 코드 챌린지 시즌1 > 쿼드압축 후 개수 세기 - JAVA (분할 정복) https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 나의 생각 제목이 거창하지만 결국에는 분할 정복입니다. 분할 정복은 조건에 부합하지 않을 경우 탐색 범위를 줄여가면서 조건을 부합하는 경우를 찾아가는 겁니다. 그렇기 때문에 우선 위의 그림처럼 처음에 2차원 배열을 값들을 한 번 살펴봅니다. 그랬을때 모든 값이 같으면 그 값으로 압축하면 끝 하지만 다른 값이 있으면 4등분하고 다시 검색하는 겁니다. 저 같은 경우 메소드를 하나 만들어 살펴.. 2024. 1. 22.