최신 글
-
[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 4014번 활주로 건설
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 문제에서 주어진 조건에 맞추어 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Solution { public static int N, X; public static int[][] map; public static boolean[] isSelected; public static void main(String[] args) throws IOE..
2021.05.23
-
[Python] N진수 변환
2진수 format() format()을 사용하여 이진수로 변환이 가능합니다. 이때, 변환 결과로 0bxxxx... 형태로 나오게 되므로 0b를 없에는 처리를 해주어야 합니다. # 방법 1 binary_str1 = "{0:b}".format(arr1[i] | arr2[i]) # 방법 2 binary_str2 = format(arr1[i] | arr2[i], 'b') bin() bin()을 사용하여 이진수로의 변환이 가능합니다. bin()의 변환 결과도 0bxxxx... 형태로 나오기 때문에 0b를 없에줘야 합니다. binary_str = str(bin(arr1[i] | arr2[i]))[2:] zfill(), rjust() format()과 bin()의 결과로 n개의 비트를 가진 이진수를 만들때 비트의 ..
2021.02.28
-
[Java] BOJ 1261번 알고스팟
1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 풀이 우선순위 큐를 사용한 BFS 즉, 다익스트라 알고리즘을 적용하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { public static int N..
2021.07.30
-
[Java] BOJ 16930번 달리기
16930번: 달리기 진영이는 다이어트를 위해 N×M 크기의 체육관을 달리려고 한다. 체육관은 1×1 크기의 칸으로 나누어져 있고, 칸은 빈 칸 또는 벽이다. x행 y열에 있는 칸은 (x, y)로 나타낸다. 매 초마다 진영이는 www.acmicpc.net 풀이 출발점에서 도착지에 도착할 때까지 BFS를 수행하게 하여 해결했습니다. 이때, BFS를 수행할때, 최대 K개의 칸을 이동할 수 있으므로 1칸 ~ K개의 칸까지의 모든 경우를 전부 큐에 담에 BFS를 돌리게 해야 합니다. 또한, visited 배열을 Integer.MAX_VALUE 즉, 가장 큰 값으로 초기화하고 최솟값을 저장하기 때문에 이미 방문을 했더라도 방문 횟수가 더 크다면 중지시키고 작다면 방문을 할 수 있게 해주어야 합니다. 코드 impo..
2021.05.16