-
저의 시간을 팝니다
최종 수정: 2024년 11월 20일 개요 저의 시간을 팝니다. 최소 1시간부터 30분 단위로 판매합니다. 예를 들면, 취업 준비 (대기업 코딩 테스트, 스타트업 코딩 테스트, 기술 면접, 설계 면접, 인성 면접, 이력서 등) 알고리즘 수업(을 할 수도 있으나, 저는 이제 기본기밖에 가르칠 수 없습니다) 대학 진학 준비(를 할 수도 있으나, 저는 입시를 떠난지 7년 정도 되었습니다) 소프트웨어 엔지니어링 관련 외주 작업 소프트웨어 엔지니어링 관련 파트타임 제안 기타 모든 제안 수용할 수 없거나 내키지 않는 요청은 거절할...
-
[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] =...
-
[BOJ] 1018 : 체스판 다시 칠하기
1018 : 체스판 다시 칠하기 풀이 그냥 다 돌려보면 된다. 코드 #include <stdio.h> #define min(a,b) (a)<(b)?(a):(b) int n, m, i, j, a, b, ans = 1e9; char str[55][55]; int main() { scanf("%d %d", &n, &m); for (i = 0; i < n; i++) scanf("%s", str[i]); for (i = 0; i < n - 7; i++) for (j = 0; j < m - 7; j++) { int cnt = 0; for (a = i; a...
-
[BOJ] 1450 : 냅색문제
1450 : 냅색문제 풀이 숫자의 크기가 너무 커서 일반적인 냅색 풀이로는 풀 수 없다. 그렇다고 2^30을 돌리자니 그것도 크기가 너무 크다. 수열을 정렬하고 반으로 나눠서 절반씩 완전탐색 해주자. 2^15씩 두 번이니 충분히 돌고도 남는다. 그리고 완전탐색한 두 조합을 linear하게 잘 섞어주자. 코드 #include <stdio.h> #include <vector> #include <algorithm> using namespace std; int n, c, ans, a[33]; vector<int> v1, v2; void dfs(int s, int e, int sum, vector<int>& v) { if (sum > c) return; if...
-
[BOJ] 1799 : 비숍
1799 : 비숍 풀이 일반적인 풀이로 답을 구하려면 O(2^(10*10))으로 TLE가 난다. 체스판에서 대각선이 흑과 백으로 구분됨을 이용하자. 흑색칸 O(2^(5*5))와 백색칸 O(2^(5*5))를 따로 구해서 더하면 TLE를 피할 수 있다. 앞선 (boj 9663 N-Queen) 풀이에서 언급한 x를 +로 뒤집기(?)를 이용할 수 있겠다. 코드 #include <stdio.h> #define max(a,b) (a)>(b)?(a):(b) int n, f, ans[2], l[33], r[33], a[33][33]; void dfs(int x, int y, int c) { ans[f] = max(ans[f], c); if (y >= n) y = f ^ (++x %...
-
[BOJ] 9663 : N-Queen
9663 : N-Queen 풀이 룰루랄라 백트래킹을 해주자~ x 모양 대각선을 + 모양으로 뒤집어서 생각할 때 (x, y) -> (x+y, x-y)를 이용하면 편하다. 말이 조금 이상하지만 아무튼 저렇게 넣고 출력해보면 대강 이해 갈 것이다. https://www.acmicpc.net/problem/2496 위 문제도 이 테크닉을 써서 풀 수 있겠다. 코드 #include <stdio.h> int n, ans, u[33], l[33], r[33]; void dfs(int h, int c) { if (c == n) { ans++; return; } for (int i = 0; i < n; i++) {...