백준 252

BOJ 1520 : 내리막 길

문제 링크 : boj.kr/1520 난이도 : G3 태그 : DP, DFS 1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net 코드 #include #define all(x) (x).begin(), (x).end() #define INF 0x7FFFFFFF using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; int dx[] = {0, 1, 0, -1}; int dy[] = {1, ..

PS 2024.02.26

BOJ 1788 : 피보나치 수의 확장

문제 링크 : boj.kr/1788 난이도 : S3 태그 : DP 1788번: 피보나치 수의 확장 첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절댓값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절댓값을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 코드 #include #define all(x) (x).begin(), (x).end() #define INF 0x7FFFFFFF using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; int main() { ios::sync_with_st..

PS 2024.02.25

BOJ 2559 : 수열

문제 링크 : boj.kr/2559 난이도 : S3 태그 : 두포인터, 슬라이딩윈도우 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 코드 #include #define all(x) (x).begin(), (x).end() #define INF 0x7FFFFFFF using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; int main() { ios::sync_with_s..

PS 2024.02.24

BOJ 31421 : 호떡 뒤집기

문제 링크 : boj.kr/31421 난이도 : G1 태그 : 애드혹, 해 구성하기 31421번: 호떡 뒤집기 프라이팬 위에는 $N$개의 호떡이 일렬로 놓여 있다. 각각의 호떡은 앞면이 흰색, 뒷면이 갈색이다. 처음에 모든 호떡은 앞면이 보이는 상태이다. 이때, 호떡 요리사인 현준이는 다음 절차에 따른 www.acmicpc.net 코드 #include #define all(x) (x).begin(), (x).end() #define INF 0x7FFFFFFF using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; int main() { ios::sync_with_stdio(0)..

PS 2024.02.23

BOJ 31418 : 스펀지

문제 링크 : boj.kr/31418 난이도 : S4 태그 : 구현 31418번: 스펀지 첫 번째 줄에 스펀지의 가로 길이 $W$와 세로 길이 $H$, 바이러스의 수 $K$, raa가 바이러스를 관찰할 시간 $T$가 공백으로 구분되어 주어진다. $(1 \leq W, H, K \leq 10^6;$ $0 \leq T \leq 10^6)$ 이어서 $K$줄에 www.acmicpc.net 코드 #include #define all(x) (x).begin(), (x).end() #define INF 0x7FFFFFFF using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; int main..

PS 2024.02.22

BOJ 31423 : 신촌 통폐합 계획

문제 링크 : boj.kr/31423 난이도 : G5 태그 : 링크드 리스트 31423번: 신촌 통폐합 계획 첫 번째 줄에 대학교의 개수 $N$이 주어진다. $(2 \leq N \leq 500 \, 000)$ 다음 $N$개의 줄의 $i$번째 줄에 대학교 이름을 의미하는 알파벳 소문자로 이루어진 문자열 $s_i$가 주어진다. 주어지는 대학교 www.acmicpc.net 코드 #include #define all(x) (x).begin(), (x).end() #define INF 0x7FFFFFFF using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; int main() { io..

PS 2024.02.21

BOJ 6504 : 킬로미터를 마일로

문제 링크 : boj.kr/6504 난이도 : S5 태그 : 구현 6504번: 킬로미터를 마일로 각각의 킬로미터 거리 x에 대해서, 상근이의 알고리즘을 이용해 마일로 바꾼 값 y를 출력한다. www.acmicpc.net 코드 #include #define all(x) (x).begin(), (x).end() #define INF 0x7FFFFFFF using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); vector fibo; fibo.emplace_back(1); f..

PS 2024.02.20

BOJ 31420 : 문자열 - 그래프 매칭

문제 링크 : boj.kr/31420 난이도 : G1 태그 : 투포인터 31420번: 문자열 - 그래프 매칭 첫 번째 줄에 문자열의 길이를 나타내는 정수 $N$이 주어진다. $(2 \le N \le 2\, 000\,000)$ 두 번째 줄에 문자열 $T$가 주어진다. $T$는 알파벳 소문자로만 이루어진 길이 $N$짜리 문자열이다. 세 번째 줄 www.acmicpc.net 코드 #include #define all(x) (x).begin(), (x).end() #define INF 0x7FFFFFFF using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; int main() { i..

PS 2024.02.19

BOJ 31422 : AND, OR, XOR 2

문제 링크 : boj.kr/31422 난이도 : G1 태그 : DP 31422번: AND, OR, XOR 2 음이 아닌 정수로 이루어진 길이 $N$의 수열 $A_1, A_2, \cdots, A_N$이 주어진다. $\land, \lor, \oplus$를 각각 Bitwise AND, OR, XOR 연산자로 정의하자. 다음 세 값을 $998\,244\,353$으로 나눈 나머지를 각각 구하여 www.acmicpc.net 코드 #include #define all(x) (x).begin(), (x).end() #define INF 0x7FFFFFFF using namespace std; using ll = long long; using ld = long double; using pii = pair; using p..

PS 2024.02.18

BOJ 29155 : 개발자 지망생 구름이의 취업 뽀개기

문제 링크 : boj.kr/29155 난이도 : S3 태그 : 정렬, 그리디 29155번: 개발자 지망생 구름이의 취업 뽀개기 난이도 $1$에서 $1$분, $4$분, $4$분 순서로, 난이도 $2$에서 $5$분, 난이도 $3$에서 $20$분, 난이도 $4$에서 $40$분, 난이도 $5$에서 $100$분 순서대로 풀면 $1+3+4+0+4+60+5+60+20+60+40+60+100=417$분이 걸린다. www.acmicpc.net 코드 #include #define all(x) (x).begin(), (x).end() #define INF 0x7FFFFFFF using namespace std; using ll = long long; using ld = long double; using pii = pair;..

PS 2024.02.17