분류 전체보기 795

백준 20366번 같이 눈사람 만들래? (JAVA)

https://www.acmicpc.net/problem/20366 20366번: 같이 눈사람 만들래? 높이가 (2, 5), (3, 5)로 구성된 눈사람 둘을 만드는 것이 최적의 경우 중 하나이다. |7-8| = 1 다른 경우로는 (2, 9), (5, 5)로 두 눈사람을 만드는 경우가 있다. |11-10| = 1 www.acmicpc.net 저는 투포인트를 통해 문제를 해결하였습니다. 먼저 배열을 정렬해 주었습니다. 먼저 2중 for문을 통해 두개의 지름을 선택하고, 맨앞과 맨끝을 투포인트로 가리키면서 처음에 선택한 두개의 합보다 작다면 시작 포인트를 늘리고 그렇지 않으면 끝 포인트를 줄였습니다. package BOJ.twopoint; import java.io.BufferedReader; import ..

알고리즘 2022.09.30

백준 16940번 BFS 스페셜 저지 (JAVA)

https://www.acmicpc.net/problem/16940 16940번: BFS 스페셜 저지 올바른 순서는 1, 2, 3, 4와 1, 3, 2, 4가 있다. www.acmicpc.net 저는 BFS를 통해 문제를 해결하였습니다. 일반적인 BFS랑 다르게 Set을 통해 노드의 연결을 표시하였습니다. BFS 진행은 해당 값이 Set에 존재하면 진행하고 그렇지 않으면 FAIL하도록 하였습니다. package BOJ.bfs; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.HashSet; import java.util.LinkedList; import java.util.Queue; import java.u..

알고리즘 2022.09.29

프로그래머스 평균 구하기 (JAVA)

https://school.programmers.co.kr/learn/courses/30/lessons/12944 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 저는 구현을 통해 문제를 해결하였습니다. 구현을 통해 모든 값을 더하고 이를 길이로 나눠 평균을 구하였습니다. class Solution { public double solution(int[] arr) { double answer = 0; long sum = 0; for(int i = 0 ; i < arr.length ; i++){ sum += arr[i]; } answer = (double)su..

알고리즘 2022.09.28

백준 19538번 루머 (JAVA)

https://www.acmicpc.net/problem/19538 19538번: 루머 예제 1 0분 : 최초 유포자($1$, $6$번 사람)가 루머를 생성한다. 1분 : $1$번 사람은 $2$, $3$번 사람에게 루머를 퍼뜨린다. $2$번 사람은 주변인 $2$명 중 $1$명이 루머를 믿고 있어 루머를 믿게 된다. $3$ www.acmicpc.net 저는 BFS를 통해 문제를 해결하였습니다. BFS를 통해 유포자부터 시작하여 각각의 사람들이 친구의 수 / 2 보다 유포한 친구의 수 이상이라면 BFS를 진행하도록 하였습니다. package BOJ.bfs; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arr..

알고리즘 2022.09.27

백준 14395번 4연산(JAVA)

https://www.acmicpc.net/problem/14395 14395번: 4연산 첫째 줄에 정수 s를 t로 바꾸는 방법을 출력한다. s와 t가 같은 경우에는 0을, 바꿀 수 없는 경우에는 -1을 출력한다. 가능한 방법이 여러 가지라면, 사전 순으로 앞서는 것을 출력한다. 연산의 아 www.acmicpc.net 저는 구현을 통해 문제를 해결하였습니다. 방문체크는 그 숫자로 하였고, /는 0일때 하면 안되기 때문에 지금 숫자가 0이라면 continue를 통해 안하게 구현하였습니다. 시작 숫자와 끝 숫자가 같다면 처음부터 0을 리턴하도록하고 못구한다면 -1을 리턴하였습니다. package BOJ.bfs; import java.io.BufferedReader; import java.io.InputStr..

알고리즘 2022.09.26

프로그래머스 PCCP 모의고사 4번 (JAVA)

https://school.programmers.co.kr/learn/courses/15008/lessons/121686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 저는 우선순위 큐를 통해 해당 문제를 해결하였습니다. 먼저 프로그램을 시간 순서대로 정렬 후 현재 시간까지의 프로그램은 우선순위 큐에 넣고 우선 순위가 높은 프로그램부터 해결해 나갔습니다. import java.util.*; class Solution { private static final int SIZE = 10; public long[] solution(int[][] programs)..

알고리즘 2022.09.25

프로그래머스 PCCP 모의고사 2번 (JAVA)

https://school.programmers.co.kr/learn/courses/15008/lessons/121684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 저는 순열을 통해 문제를 해결하였습니다. 순열을 통해 모든 상황을 고려해 가장 높은 점수를 찾았습니다. class Solution { public int solution(int[][] ability) { int peopleCnt = ability.length; int sportCnt = ability[0].length; boolean[] used = new boolean[peopleCnt]..

알고리즘 2022.09.24

프로그래머스 PCCP 모의고사 1번 (JAVA)

https://school.programmers.co.kr/learn/courses/15008/lessons/121683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 저는 구현을 통해 해당 문제를 해결하였습니다. 구현을 통해 현재 알파벳이 나왔는지 안나왔는지를 확인하였고, 이 알파벳이 바로 이전의 알파벳과 같은지 다른지를 확인하였습니다. 만약 이전에 나온적이 있고, 이전 알파벳과 다르다면 List에 넣었습니다. 그리고 List의 중복을 제거하기 위해 List에서 사용한 것들을 Set으로 체크하여 List에 없는 것만 넣었습니다. import java.u..

알고리즘 2022.09.23

백준 8394번 악수 (JAVA)

https://www.acmicpc.net/problem/8394 8394번: 악수 첫째 줄에 회의에 참석한 사람의 수 n (1 ≤ n ≤ 10,000,000)이 주어진다. www.acmicpc.net 저는 DP를 이용해 문제를 해결하였습니다. DP를 이용해 이전에 계산한 값을 다시 계산하지 않도록 하였습니다. n이 오른쪽 즉, n-1번째 사람과 악수를 할지 안할지를 계산하였습니다. n이 1이하라면 옆사람이 존재하지 않기에 이때는 악수하는 것을 고려하지 않았습니다. n이 0이면 끝까지 온것이기에 1을 리턴하도록 하였습니다. package BOJ.dp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stri..

알고리즘 2022.09.22

프로그래머스 N-Queen (JAVA)

https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 저는 구현을 통해 문제를 해결하였습니다. 저는 좌표를 배열에 넣고 현재 좌표에 비교하여 현재 좌표에 넣을 수 있는지를 판단하고 다음 y좌표로 넘어갔습니다. depth가 n이라면 n개의 queen을 놓은 것이기 때문에 1을 리턴 그러지 않고 y가 n이상이면 0을 리턴하도록 하였습니다. class Solution { public static class Node{ int y; int x; public ..

알고리즘 2022.09.21