브루트포스 17

[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/1411 1411번: 비슷한 단어 첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 모든 단어의 길이는 같고, 중복 www.acmicpc.net 코드 package com.example.algorithm.study.week8; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; // 처음에는 zbxz 가 abca 로 바뀌는 것 조차 ..

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

[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

[B17626][Four Squares][java]

https://www.acmicpc.net/problem/17626 17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net 코드 (DP x) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class B17626_Before { public static void m..

BAEKJOON/Java 2023.10.07

[B2961][도영이가 만든 맛있는 음식][java]

https://www.acmicpc.net/problem/2961 2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net 풀이 재료 n개, 각 재료의 신맛 S, 쓴맛 B 여러 재료로 요리할 때, 신맛 = 사용한 재료들의 신맛의 곱 쓴맛 = 사용한 재료들의 쓴맛의 합 신맛과 쓴맛의 차이를 적게, 재료는 적어도 하나 사용 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; impo..

BAEKJOON/Java 2023.10.07

[B1182][부분수열의 합][java]

코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.StringTokenizer; // 1. 비트마스킹으로 부분 집합을 구한다. // 2. 합과 s 를 비교하여 카운트한다. public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(..

BAEKJOON/Java 2023.10.07

[B15686][치킨 배달][java]

풀이 처음에는 시간초과났다. 나는 치킨집 전체에서 하나씩 제거해가며 m 개수에 맞춰서 경우의 수 계산 수정된 코드는 0개부터 시작해서 m개만큼 골라서 경우의 수 계산 ex. 13개 중에 2개 뽑기 → 11개를 제거해야 하니 비효율적 → 2개씩 골라서 경우의 수 계산해나가는 게 정답. 코드 public class B15686 { public static class Point { int x, y; public Point(int x, int y){ this.x = x; this.y = y; } } static int n, m, distance; static int[][] city; static boolean[] isVisit; public static void main(String[] args) throws ..

BAEKJOON/Java 2023.10.07