분류 전체보기 795

백준 16509번 장군 (JAVA)

https://www.acmicpc.net/problem/16509 16509번: 장군 오랜만에 휴가를 나온 호근이는 문득 동아리방에 있는 장기가 하고 싶어졌다. 하지만 장기를 오랫동안 하지 않은 탓인지 예전에는 잘 쓰던 상을 제대로 쓰는 것이 너무 힘들었다. 호근이를 위해 www.acmicpc.net 저는 bfs를 통해 문제를 해결하였습니다. 상의 위치부터 bfs를 통해 갈 수 있는 모든 경로에 왕에 있는지를 확인하였습니다. package BOJ.bfs; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.LinkedList; import java.util.Queu..

알고리즘 2023.10.02

백준 15720번 카우버거 (JAVA)

https://www.acmicpc.net/problem/15720 15720번: 카우버거 첫째 줄에는 주문한 버거의 개수 B, 사이드 메뉴의 개수 C, 음료의 개수 D가 공백을 사이에 두고 순서대로 주어진다. (1 ≤ B, C, D ≤ 1,000) 둘째 줄에는 각 버거의 가격이 공백을 사이에 두고 주어진 www.acmicpc.net 저는 정렬을 통해 문제를 해결하였습니다. 먼저 버거 사이드 음료를 정렬하고 각각의 개수의 최소값을 구합니다. 각각 그만큼만 10퍼센트 세일해 문제를 해결하였습니다. package BOJ.etc; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java..

알고리즘 2023.10.01

백준 2014번 소수의 곱 (JAVA)

https://www.acmicpc.net/problem/2014 2014번: 소수의 곱 첫째 줄에 K(1 ≤ K ≤ 100), N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 K개의 소수가 오름차순으로 주어진다. 같은 소수가 여러 번 주어지는 경우는 없으며, 주어지는 소수는 모두 541보다 작거나 www.acmicpc.net 저는 우선순위 큐를 통해 문제를 해결하였습니다. 우선순위 큐에 입력 값들을 넣고, 맨 앞에 있는 것을 입력값에 각각 곱하여 문제를 해결하였습니다. package BOJ.greedy; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.PriorityQueue; import ja..

알고리즘 2023.09.30

백준 24479번 알고리즘 수업 - 깊이 우선 탐색 1 (JAVA)

https://www.acmicpc.net/problem/24479 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 저는 dfs를 통해 문제를 해결하였습니다. dfs를 통해 방문하지 않은 곳을 방문하면서 몇번째에 방문하는지를 체크하여 문제를 해결하였습니다. package BOJ.dfs; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Coll..

알고리즘 2023.09.29

백준 1475번 방 번호 (JAVA)

https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 저는 구현을 통해 문제를 해결하였습니다. 먼저 각각의 자리의 개수를 확인하고 6과 9를 제외한 값들의 최대를 구하였습니다. 그리고 6과 9의 합의 2분의 1값과 최대 값을 비교하여 초기화 시켰습니다. 이때 나누어 떨어지지 않으면 1 값을 늘려서 비교하여 문제를 해결하였습니다. package BOJ.etc; import java.io.BufferedReader; import java.io.InputStreamReader; public class BOJ_1475 { private static fin..

알고리즘 2023.09.28

백준 1183번 약속 (JAVA)

https://www.acmicpc.net/problem/1183 1183번: 약속 마법사 N명이 머글 문화를 이해하기 위해 머글과 약속을 잡았다. 각 마법사는 한 명의 머글을 만날 예정이다. 하지만, 마법사는 약속 시간보다 빨리 또는 늦게 도착할 수 있기 때문에 고민에 빠 www.acmicpc.net 저는 규칙을 찾고 이를 구현하여 문제를 해결하였습니다. 먼저 홀수라면 1 짝수하면 정 가운데 두개의 간격으로 문제를 해결하였습니다/ import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Collections; import java.util.LinkedList; import java.util.List; import ..

알고리즘 2023.09.27

프로그래머스 조건 문자열 (JAVA)

https://school.programmers.co.kr/learn/courses/30/lessons/181934 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 저는 구현을 통해 문제를 해결하였습니다. 각각의 조건에 맞다면 TURE(1)로 변경하여 문제를 해결하였습니다. class Solution { private static final int TRUE = 1; private static final int FALSE = 0; public int solution(String ineq, String eq, int n, int m) { int answer =..

알고리즘 2023.09.26

백준 21278번 호석이 두마리 치킨 (JAVA)

https://www.acmicpc.net/problem/21278 21278번: 호석이 두 마리 치킨 위의 그림과 같이 1번과 2번 건물에 치킨집을 짓게 되면 1번부터 5번 건물에 대해 치킨집까지의 왕복 시간이 0, 0, 2, 2, 2 로 최소가 된다. 2번과 3번 건물에 지어도 동일한 왕복 시간이 나오지만 더 www.acmicpc.net 저는 bfs를 통해 문제를 해결하였습니다. 먼저 두개의 지점을 골라 그것들로 부터 시작하여 bfs를 진행하여 각각의 지점까지 얼마나 걸리는지를 확인하고 결과값을 초기화하였습니다. 만약 맞았습니다(1/19)가 나온다면, 왕복을 고려하였는지를 확인하시기 바랍니다. package BOJ.bfs; import java.io.BufferedReader; import java...

알고리즘 2023.09.25

백준 1052번 물병 (JAVA)

https://www.acmicpc.net/problem/1052 1052번: 물병 지민이는 N개의 물병을 가지고 있다. 각 물병에는 물을 무한대로 부을 수 있다. 처음에 모든 물병에는 물이 1리터씩 들어있다. 지민이는 이 물병을 또 다른 장소로 옮기려고 한다. 지민이는 한 번 www.acmicpc.net 저는 이진법을 통해 문제를 해결하였습니다. 먼저 n을 이진법으로 표현하고 1의 개수를 찾습니다. 이 1의 개수가 k보다 작다면 바로 0을 리턴합니다. k보다 크다면 이 1의 개수를 줄여나가도록 하였습니다. 그래서 이진법에서 낮은 1부터 없어지도록 해당 자리 수의 이진수 1에 해당하는 값을 추가하여 문제를 해결하였습니다. package BOJ.etc; import java.io.BufferedReader..

알고리즘 2023.09.24

백준 10845번 큐 (JAVA)

https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 저는 deque를 이용해 문제를 해결하였습니다. deque를 통해 back인 경우 마지막을 peek해서 해결하였고, 나머지는 큐처럼 해결하였습니다. package BOJ.etc; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Deque; import java.util.LinkedLi..

알고리즘 2023.09.23