자바 5

프로그래머스 - 무인도 여행[Java]

https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   아직 실력이 부족하여 풀이가 아주그냥 엉망진창이다. 하지만 구현 하고자 하는 의도는 명확했다;;dfs를 이용하여 순회순회하다가 더이상 나아갈 곳이 없으면 돌아오면서 누적합을 구한다.이렇게 구한 누적합을 큐에 저장한다.큐에 있는 값들을 정수 배열에 넣고 정렬 후 반환개인적으로 이 문제에서 가장 중요하면서 어려웠던 부분은 돌아오면서 누적합을 구하는 과정이라고 생각한다. import java.util.*;class Solution { pu..

프로그래머스 - 기능개발(Java)

배열과 큐를 이용해서 해결 하였다. 변수 설명head ==> 탐색을 시작할 위치(처음에는 head 변수 없이 이미 배포가 된 작업에 대해서도 체크를 해줘서 시간 초과가 발생하였다.)tail ==> progresses 배열의 크기큐 ans ==> 배포된 갯수를 차례대로 삽입, poll() 함수를 이용하여 answer 배열에 복사import java.util.*;class Solution { public int[] solution(int[] progresses, int[] speeds) { int[] answer = {}; Queue ans = new LinkedList(); int head=0; int tail=progresses.length; ..

프로그래머스 - 같은 숫자는 싫어(Java)

Queue를 이용하여 해결한 문제이다. 알고리즘 설명1. arr[i]와 arr[i-1]을 비교하여 다르면 큐에 삽입하지만 이렇게만 하면 4, 4, 4, 3, 3일때 배열의 끝에 있는 3이 삽입이 안된다. 왜냐하면 다를때만 삽입하기 때문이다.따라서 변수 ex에 저장했던 숫자를 저장해두고 반복문의 마지막에 사용해야함 2. 배열의 마지막 숫자가 가장 최근에 삽입한 숫자와 다른 경우 ==> 큐에 삽입해준다. 3.큐에서 poll을 이용하여 차례대로 answer배열에 넣어준다. 4. answer 리턴import java.util.*;public class Solution { public int[] solution(int []arr) { int[] answer = {}; Queue q ..

백준-1780번/종이의 개수(java)

문제 이해입력된 배열을 9등분 해가면서 배열의 숫자가 모두 같으면 해당 숫자의 갯수 증가, 다르면 9등분 후 똑같이 반복한다.9등분으로 나누어서 분할 정복 알고리즘을 사용 해야한다. 문제 해결 해당 섹션의 숫자가 모두 같은지를 체크하는 함수public static boolean numCheck(int row, int col, int size){ //종이가 모두 같은 수로 이루어져 있는지 체크 int num = arr[row][col]; for(int i=row; i 만약 섹션의 숫자가 모두 같으면 해당 숫자 카운트 증가다른 숫자가 포함 되어있는 경우에는 9등분 후  각 섹션에 대해 partition함수 재귀 실행public static void partition(int row, int col,..

알고리즘/백준 2024.12.29

백준-1476번/날짜 계산 (java)

문제 해결 E의 범위는 1~15S의 범위는 1~28M의 범위는 1~19 E S M을 모두 1부터 시작해서 입력 받은 값과 같을때까지 반복문을 돌려서 E S M과 일치하는 경우를 찾아야한다.(브루트포스 알고리즘) import java.util.Scanner;public class Problem1476 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int E; int S; int M; int year=1; int e=1; int s=1; int m=1; E=scanner.nextInt()..

알고리즘/백준 2024.06.26