최신 글
-
[Java] BOJ 1167번 트리의 지름
1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 풀이 우선 임의의 점(1번 정점)에서 가장 긴 거리를 갖고 있는 정점을 구하고 해당 정점에서 다시 긴 거리를 구하면 그 거리가 최대 거리가 되므로 정답을 구할 수 있습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import ..
2021.10.21
-
[Java] BOJ 1644번 소수의 연속합
1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 풀이 에라토스테네스의 체와 투포인터를 활용하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class Main { public static int N, answer; public static boolean[] isPrime; public static List primeArr; public static void main(String[] arg..
2021.10.20
-
[Java] BOJ 1918번 후위 표기식
1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net 풀이 우선 연산자별 우선순위를 정하고 스택을 사용하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.Stack; public class Main { public static Map opPriority,..
2021.10.19
-
[Java] BOJ 17406번 배열 돌리기 4
17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 풀이 문제에서 주어진 조건과 순열을 사용하여 해결했습니다. 자세한 내용은 코드의 주석을 확인해주세요. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static class Info { int r, c, ..
2021.10.15
인기 글
-
[Java] SWEA 7227번 사랑의 카운슬러
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 각 좌표를 입력받고 두마리의 지렁이끼리 매칭되야하므로 조합을 사용하였습니다. 기저조건으로 전체 지렁이의 절반이 선택되면 선택된 지렁이들이 선택이 안된 지렁이들 방향으로 가게 되므로 선택된 지렁이들의 좌표는 더해주고 선택이 안된 지렁이들을 빼주어주면 벡터의 합을 구할 수 있습니다. 이때, 정답의 값은 int의 가장 큰 값을 초과할 수 있기 때문에 long형으로 처리하였고 이를 이용해서 벡터의 크기를 구하여 최소가 되는 값을 갱신하여 해결하였습니다. 코드 import java.io.BufferedReader; import java.io.InputStreamRea..
2021.02.08
-
VS Code 환경설정 동기화 방법
집에 있는 컴퓨터에 그동안 미뤄왔던 VS Code를 설치하게 되면서 기존에 노트북에서 사용중이던 VS Code의 환경을 그대로 가져다가 사용할 방법이 없을까 하면서 찾게 된 아주 간단한 방법을 공유하고자 (나중에 까먹을까봐) 포스팅하게 되었습니다. 1. VS Code의 Extension에서 Settings Sync를 검색 후 설치 2. 토큰 발급 1) github.com > settings > Personal Access Tokens > Generate New Token 순으로 메뉴 진입 귀찮으신 분들을 위해 Personal Access Tokens 메뉴로 바로 가는 링크 남기겠습니다. Github 로그인 필요!! https://github.com/settings/tokens Build software ..
2020.04.15
-
[Java] SWEA 5643번 키 순서
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXQsLWKd5cDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 BFS, DFS를 이용해서 그 점에서 다른 점으로 가는 횟수와 다른 점에서 그 점으로 들어오는 개수를 합하여 나온 총 횟수가 점의 개수인 N과 같다면 자신의 키가 몇 번째인지 확실하게 알 수 있으므로 이를 이용하여 해결했습니다. 코드 1. BFS import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader..
2021.04.06
-
[Java] 문자열을 한 글자씩 자르고 다시 합치기
String의 split()과 join()을 사용합니다. input_s = "gfedcba"; // 한 글자씩 자른다 String[] arr = input_s.split(""); /* arr = {"g", "f", "e", "d", "c", "b", "a"} */ // 사전순으로 정렬한다. Arrays.sort(arr); /* arr = {"a", "b", "c", "d", "e", "f", "g"} */ // 다시 문자열로 합친다. String str = String.join("", arr); /* str = "abcdefg" */
2021.03.30