-
[BOJ] 8902 : 색상의 길이
8902 : 색상의 길이 풀이 잘 정리된 풀이가 있어서 풀이와 출처를 첨부합니다! 목적 함수 : Sum { Length(color) } Length(c) = LastIdx(c) - FirstIdx(c) + 1 이므로 결국, Sum { LastIdx } + Sum { -FirstIdx }를 최소화 시키는 문제로 볼 수 있다. 2개의 차 행렬은 앞에서부터 순차적으로 합쳐지기 때문에 첫 번째 차 행렬에서 i개의 차량이 합쳐지고, 두 번째 차 행렬에서 j개의 차량이 합쳐졌을 때를 상태 공간으로 삼아 동적계획법을 수행할 수 있다. 이를 D[i][j]라고 하자....
-
[BOJ] 13458 : 시험 감독
13458 : 시험 감독 풀이 행복을 줄 수 없었어 그런데 사랑을 했어 네 곁에 감히 머무른 내 욕심을 용서치마 코드 #include <stdio.h> int n, i, a[1000001], b, c; long long ans; int main() { scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", a + i); scanf("%d %d", &b, &c); for (i = 0; i < n; i++) { ans++, a[i] -= b; if (a[i] > 0) ans += a[i] / c +...
-
[BOJ] 13460 : 째로탈출 2
13460 : 째로탈출 2 풀이 늘 그랬었어 넌 참 예뻤어 말 할 때마다 웃는 눈도 내가 아니어도 누군가 사랑해 줄 사람 많을 거야 코드 #include <stdio.h> #include <queue> using namespace std; const int dx[] = { -1,0,1,0 }; const int dy[] = { 0,-1,0,1 }; struct ABC { int cnt, rx, ry, bx, by; }; queue<ABC> que; int n, m, rx, ry, bx, by; bool chk[11][11][11][11]; char toy[12][12]; int main() { scanf("%d %d\n", &n, &m);...
-
[BOJ] 14888 : 연산자 끼워넣기
14888 : 연산자 끼워넣기 풀이 완전탐색 완전탐색 신나는 노래~ 코드 #include <stdio.h> int n, i, mn = 2e9, mx = -2e9, a[11], op[4]; void dfs(int c, int v) { if (c == n) { mn = mn < v ? mn : v; mx = mx > v ? mx : v; return; } if (op[0]) --op[0], dfs(c + 1, v + a[c]), ++op[0]; if (op[1]) --op[1], dfs(c + 1, v - a[c]), ++op[1]; if...
-
수업
최종 수정: 2025년 08월 07일 개요 빅테크, 국내 대기업, 스타트업 등 코딩테스트 수업합니다. 입시, 대회(KOI, ICPC 등) 준비는 손을 놓은지 오래되어 직접 진행하기 어렵고, 지인 소개는 알아볼 수 있습니다. 저의 시간을 유/무상으로 사용하고 싶은 경우도 연락 주시면 답변 드리겠습니다. 연락 아래의 메일 주소로 연락 부탁드립니다. wookje.happy@gmail.com
-
[BOJ] 3190 : 뱀
3190 : 뱀 풀이 매번 늦어도 이해할게 누굴 만났니 먼저 묻지 않을게 고집스런 내 사랑 너의 말은 변명이라도 믿고 싶을테니 눈 비비는 척 눈물 닦아내고 다음 약속도 잡을 이유 만들지 네 마음보다 한숨과 친해져도 널 보기위해 난 사니까 수 없이 어긋난대도 기다릴게 아무리 가슴 아파도 웃어볼게 떠나선 안 돼 서둘러 져버리지 마 날 밀어내도 깊어지는 이 사랑을 봐 내 입을 막아도 세상이 다 아는데 왜 너만 몰라 왜 널 지킬 남자를 몰라 코드 #include <stdio.h>...
-
[BOJ] 14504 : 로봇 청소기
14504 : 로봇 청소기 풀이 문제에서 주어진대로 구현하면 된다. 지문이 좀 헷갈리게 써있어서 많이 헤메다 풀었다 ㅠㅠ 코드 #include <stdio.h> #define r(a,b) a=(a+b)%4 const int dx[] = { -1,0,1,0 }; const int dy[] = { 0,1,0,-1 }; int n, m, x, y, nx, ny, d, ans; int main() { int a[55][55] = { 0 }; scanf("%d %d %d %d %d", &n, &m, &x, &y, &d); for (int i = 0; i < n; i++) for...
-
[BOJ] 10875 : 뱀
10875 : 뱀 풀이 삼성 문제들은 하나같이 빡친다 단순 구현! 인데 좀 빡치는 구현 O(n^2)에 풀어주자. i번째에 뱀이 움직여서 생긴 선분과 1 ~ i-1번째까지 움직여서 생긴 선분들을 비교해주면 된다. check() 함수가 교차에 관한 구현을 담고 있다. 맵 밖으로 나가는지 여부는 귀찮으니 맵 바깥에 선분을 그어 한 번에 처리해버리자. 음… 자세한 건 주석을 참조하자. 코드 #include <stdio.h> #include <vector> #include <algorithm> #define pb push_back using namespace std; const int INF = 2e9; const int dx[] =...
-
SW 특기자 전형을 꿈꾸는 학우 여러분들을 위하여
홍보: 알고리즘 과외 구합니다 http://wookje.dance/whoami/ SW 특기자 전형을 꿈꾸는 학우 여러분들을 위하여 선린인터넷고등학교 3학년 권욱제 많은 학우 여러분들이 대학 진학을 희망하는 줄로 압니다. 개중에서는 SW 특기자 전형을 생각하는 분들도 여럿일 것입니다. 이 자리를 빌어 첫 SW 특기자 전형을 경험한 제 주관, 그러나 객관적인 입시 결과에 기초한 제 주관으로 작은 조언을 드리고자 합니다. 하지만 어디까지나 저의 얕은 경험에 기초한 ‘권욱제’라는 고등학생의 주관이므로 비판과 객관의 시선으로 읽어주시길 부탁드립니다. 입시는 상대적이지만, 동시에 절대적입니다. 입시는 상대적입니다. 입시는 같은 년도,...
-
[BOJ] 1213 : 팰린드롬 만들기
1213 : 팰린드롬 만들기 풀이 앞뒤로 앞뒤로 넣어주자~ 코드 #include <stdio.h> #include <string.h> int n, i, cnt, flag, a[26]; char str[55]; int main() { scanf("%s", str); n = strlen(str); for (i = 0; i < n; i++) { a[str[i] - 65]++; } for (i = 0; i < 26; i++) { while (a[i]) { if (a[i] == 1) { if (flag) { puts("I'm Sorry Hansoo"); return 0; } flag = 1, str[n / 2] =...