[백준] 10430번 - 나머지 [Java][C++]
문제 링크 1. 문제 풀이 두 정수 $A$, $B$ 에 대해 네 가지 연산 결과를 출력하면 되는 문제다. 1번 연산에 대해 2번 연산은 덧셈에 대한 분배를 적용하고, 3번 연산에 대해 4번 연산은 곱셈에 대한 분배를 적용한 꼴인데, 나머지(mod) 연산의 경우 덧셈과 곱셈에 대한 분배법칙이 성립해 1번 연산과 2번 연산이 동일하고 3번 연산과...
문제 링크 1. 문제 풀이 두 정수 $A$, $B$ 에 대해 네 가지 연산 결과를 출력하면 되는 문제다. 1번 연산에 대해 2번 연산은 덧셈에 대한 분배를 적용하고, 3번 연산에 대해 4번 연산은 곱셈에 대한 분배를 적용한 꼴인데, 나머지(mod) 연산의 경우 덧셈과 곱셈에 대한 분배법칙이 성립해 1번 연산과 2번 연산이 동일하고 3번 연산과...
문제 링크 1. 문제 풀이 여러 특수문자로 이루어진 개를 출력하는 문제로 이스케이프해야 하는 문자가 섞여 있음에 주의해야 한다. 2. 코드 1. 구현 [Java] 역슬래시(\)와 큰 따옴표(")에 대한 처리만 추가해줬다. public class Main { public static void main(String[] args) ...
문제 링크 1. 문제 풀이 여러 특수문자로 이루어진 고양이를 출력하는 문제로 이스케이프해야 하는 문자가 섞여 있음에 주의해야 한다. 2. 코드 1. 구현 [Java] 역슬래시(\)에 대한 처리만 추가해줬다. public class Main { public static void main(String[] args) { ...
문제 링크 1. 문제 풀이 두 정수 $A$, $B$ 의 나눗셈을 산술 연산자를 활용하여 구하면 된다. 이때 정수 타입간 나눗셈 연산은 나머지가 버림 처리 될 수 있어서 주의해야 한다. 또한 실제 정답과의 오차가 $10^{-9}$ 이하여야 하는 점에 주의해야 한다. 2. 코드 1. 구현 [Java] double 형 변수와 int 형의 변...
문제 링크 1. 문제 풀이 두 정수 $A$, $B$ 의 차를 산술 연산자를 활용하여 구하면 된다. 2. 코드 1. 구현 [Java] import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOExc...
문제 링크 1. 문제 풀이 두 정수 $A$, $B$ 의 합을 산술 연산자를 활용하여 구하면 된다. 2. 코드 1. 구현 [Java] import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOExc...
1. LIS 기존 2중 반복문을 활용한 LIS 는 간단하게 구현할 수 있다는 장점이 있지만 $O(N^2)$ 의 시간복잡도라는 성능의 아쉬움이 있었다. LIS를 구하는 과정에서 이분 탐색을 활용하면 시간복잡도를 $O(N\log{N})$ 까지 개선할 수 있다. 2. 이분 탐색을 활용한 LIS 주어진 수열이 \(\{10, 45, 30, 35, 20...
1. LIS LIS는 Longest Increasing Subsequence의 약자로 최장 증가 부분 수열을 의미한다. 컴퓨터 공학에서 LIS 문제는 주어진 수열에서 오름차순으로 정렬된 가장 긴 부분 수열을 찾는 문제로 여기서의 부분 수열은 연속적이거나 유일할 필요는 없다. LIS는 DP 문제로 전체 수열의 LIS를 더 작은 부분 수열의 LIS를 통...
1. 퀵 정렬 퀵 정렬은 정렬 알고리즘 중 하나로 분할 정복을 통해 정렬하는 알고리즘이다. 이름 그대로 빠른 정렬이 특징인 정렬 알고리즘이다. 2. 퀵 정렬 성능 평균 시간복잡도 $O(N\log{N})$ 최선 시간복잡도 $O(N\log{N})$ ...
1. 병합 정렬 병합 정렬은 정렬 알고리즘 중 하나로 분할 정복을 통해 정렬하는 알고리즘이다. 병합 정렬 또는 합병 정렬이라고 불린다. 2. 병합 정렬 성능 평균 시간복잡도 $O(N\log{N})$ 최선 시간복잡도 $O(N\log{N})$ ...