java 35

[B21278][호석이 두 마리 치킨][java]

https://www.acmicpc.net/problem/21278 21278번: 호석이 두 마리 치킨 위의 그림과 같이 1번과 2번 건물에 치킨집을 짓게 되면 1번부터 5번 건물에 대해 치킨집까지의 왕복 시간이 0, 0, 2, 2, 2 로 최소가 된다. 2번과 3번 건물에 지어도 동일한 왕복 시간이 나오지만 더 www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int n, m, min; static int a, b; static int[][] arr; public stat..

BAEKJOON/Java 2023.10.11

[B14501][퇴사][java]

https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; // 최대 수익을 구하는 프로그램이고 문제 흐름 상 dp 문제 같았다. // 해당 일정마다 순회하면서, (해당 일자 + 걸리는 기간) dp 를 갱신하는 방식 public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReade..

BAEKJOON/Java 2023.10.10

[B16508][전공책][java]

https://www.acmicpc.net/problem/16508 16508번: 전공책 곧 졸업을 앞둔 민호는 대학교 생활 동안 구매만 해놓고 한 번도 펴보지 않은 전공책에 먼지가 쌓여 있는 것을 보고는, 이 책들을 어떻게 처리해야 할지 고민 중이다. 열심히 고민한 끝에 민호는 www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { static ArrayList arrayList = new ArrayList(); s..

BAEKJOON/Java 2023.10.10

[B1503][세 수 고르기][java]

https://www.acmicpc.net/problem/1503 1503번: 세 수 고르기 첫째 줄에 N(1 ≤ N ≤ 1,000)과 집합 S의 크기 M(0 ≤ M ≤ 50)이 주어진다. 둘째 줄에는 집합 S에 들어있는 수가 주어진다. 집합에 들어있는 수는 1,000보다 작거나 같은 자연수이고, 공백으로 구분되어 www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; class Main { public static void main(String[] args..

BAEKJOON/Java 2023.10.10

[B12919][A와 B 2][java]

https://www.acmicpc.net/problem/12919 12919번: A와 B 2 수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈 www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; // 처음에는 a 추가, b추가 뒤집기 둘다 재귀 안에서 호출해서 시간 초과가 났다. // 어떻게 선택적으로 하나만 호출할 수 있을까? // -> t 를 검사하자 -> t 문자를 제거하면..

BAEKJOON/Java 2023.10.09

[B1548][부분 삼각 수열][java]

https://www.acmicpc.net/problem/1548 1548번: 부분 삼각 수열 세 수 x, y, z가 x+y>z, x+z>y, y+z>x의 관계를 만족하면, 세 수는 삼각관계에 있다고 한다. 마찬가지로 길이가 N인 수열 B(b[0], b[1], ..., b[n-1])의 모든 b[i], b[j], b[k]가 삼각관계에 있으면 이 수열은 삼각 www.acmicpc.net 풀이 참고 https://byeongyeon.tistory.com/129#google_vignette 백준 - 부분 삼각 수열 문제 설명 길이가 N인 배열이 주어진다. 삼각 수열의 최대 길이를 구하는 프로그램을 작성하시오. 삼각 수열이란 a[0], a[1] …. a[n-1]의 배열에서 b[i], b[j], b[k]가 삼각 관..

BAEKJOON/Java 2023.10.08

[B1149][RGB거리][java]

https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 풀이 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; // dp 를 1차원 or 2차원을 고민하고 나서 부터는 금방 풀었던 거 같다. // 해당 색을 칠한다고 가정, 전꺼에서 해당 색 제외한 색 비용 중 작은 ..

BAEKJOON/Java 2023.10.08

[B14620][꽃길][Java]

https://www.acmicpc.net/problem/14620 14620번: 꽃길 2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므 www.acmicpc.net 풀이 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; // 브루트포스 문제이기 때문에 처음에 꽃을 심을 수 있는 좌표 케이스를 모두 찾고, // 최소 비용을 갱신하는 식의 방법을 떠올렸는데, // 올 수 있는 꽃의 좌표인지 검사하는 조건을 어떻게 체크할 지, 어떤 조건이 있..

BAEKJOON/Java 2023.10.08

[B11722][가장 긴 감소하는 부분 수열][java]

https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public..

BAEKJOON/Java 2023.10.08

[B7576][토마토][java]

https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) { } }

BAEKJOON/Java 2023.10.08

[B2667][단지번호붙이기][java]

https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Arrays; import java.util.Queue; import java.util.StringTokenizer; public class Mai..

BAEKJOON/Java 2023.10.08

[B2178][미로 탐색][java]

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; // 이동할 때마다 이동 횟수를 (전 칸 + 1) 해주는 것 // 그래야 같은 거리로 이동한 칸들을 같게..

BAEKJOON/Java 2023.10.08

[B1260][DFS와 BFS][java]

https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 풀이 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Mai..

BAEKJOON/Java 2023.10.08

[B2606][바이러스][java]

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; // 차례대로 큐에 넣고 꺼내면서 인접해있는지 판단하는 흐름은 기억이 났는데 // 막상 짜려니까 오랜만에 BFS 풀어서 구조가 생각이 잘 안 났다. public class Main { public ..

BAEKJOON/Java 2023.10.08

[B2156][포도주 시식][java]

https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; // 6, 10, 13, 9, 8, 1 // 6 16 23 32 33 public class Main { public static void main(String[] args) throw..

BAEKJOON/Java 2023.10.08

[B1912][연속합][java]

https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOExc..

BAEKJOON/Java 2023.10.08

[B2407][조합][java]

https://www.acmicpc.net/problem/2407 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.math.BigInteger; import java.util.StringTokenizer; // 처음에 long 으로 해서 틀렸다. 틀린 케이스가 있겠다 싶어 // 100 50 을 조합 계산기로 돌린 값이랑 계산해보니 틀리더라. // long 보다 더 큰 자료형을 생각했다. BigInteger 는 알았는데 계산 방식은 찾아..

BAEKJOON/Java 2023.10.08

[B11726][2×n 타일링][java]

https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 풀이 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; // 표로 그리면서 규칙 볼 때까지 그리다가 찾았다. // n 이 9 일 때의 값이랑 답 55 이랑 맞을 때 기분 좋았다. // 마지막에 좀 틀렸는데 나머지 나누는 걸 깜빡했다. 조건 잘 확인하기 p..

BAEKJOON/Java 2023.10.08