일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 해커랭크
- PS
- 에라토스테네스의 체
- BOJ
- 시뮬레이션
- 잠실
- hackerrank
- C++
- BFS
- 삼성 SDS 대학생 알고리즘 특강
- 백준
- 삼성 기출
- DP
- 백트래킹
- 다이나믹 프로그래밍
- 맛집
- 알고리즘
- SWEA
- 소수
- 완전탐색
- koitp
- 스택
- 브루트포스
- dfs
- 그리디
- dynamic programming
- 구현
- sw expert academy
- Algorithm
- 동적 계획법
- Today
- Total
목록Algorithm (45)
펭로그
문제링크 : https://boj.kr/14499 이 문제는 약간의 노가다 문제라고 할 수 있겠다.주사위를 굴릴 때마다 주사위에 써진 숫자의 순서가 뒤바뀌기 때문이다. 방향이 전환 되었을 때마다 어떻게 바뀌는지 전개도를 직접 바꿔보면 아래와 같이 표현 가능하다. 이러한 전개도를 기반으로 다음과 같이 배열을 만들어주고1234567const int s[5][6] = { {1, 2, 3, 4, 5, 6}, // 0 기본 {4, 2, 1, 6, 5, 3}, // 1 동쪽 {3, 2, 6, 1, 5, 4}, // 2 서쪽 {5, 1, 3, 4, 6, 2}, // 3 북쪽 {2, 6, 3, 4, 1, 5} // 4 남쪽};cs 주사위가 재배치 되었을때 재배치 작업을 거쳐주면 된다.1234567void update(..
처음으로 코드포스의 시스템을 경험해보았다.일단 해커랭크처럼 영어로 되어 있기 때문에 해석하는 데에 약간의 시간이 걸리는 것은 어쩔 수 없는 모양.. ㅠㅠ 첫 도전의 결과는 너무 참담했다.. 겨우 2문제B번 문제도 50분만에 겨우 풀었는데 예외 조건을 제대로 생각하지 못해서 시간을 너무 많이 썼다.예외 찾는데만 문제 풀이 시간만큼을 더 써버렸으니.. A. Heist사실 너무 쉬운 문제인데 문제 이해 + 해석 덕분에 약간 시간을 잡아 먹은듯 하다.주어진 숫자를 오름차순으로 정렬한 다음 중간 중간 비어있는 숫자 간격이 몇인지 누적해서 체크하면 쉽게 구할 수 있다. 1234567891011121314151617181920212223242526// Codeforces Round #509 (Div. 2)// A. ..
문제링크 : https://boj.kr 시뮬레이션 문제로 주어진 조건에 맞게 그대로 풀어내려가면 되는 문제이다.문제 접근 방법은 DFS 방식이랑 크게 차이 없지만 DFS로 풀면 스택이 계속 쌓이기 때문에 이렇게 푸는 편이 더 좋지 않을까 생각한다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778// BOJ 14503 로봇 청소기#include #include using namespace std; struct pt{ int x, y, d;}; const int dx[] = {-1, 0, 1, ..
문제링크 : https://boj.kr/7562 (시작점) -> (끝점)까지 나이트가 갈 수 있는 경로의 최단거리를 구하는 문제로 이동 가능한 8방향으로 BFS를 돌리면 풀 수 있다.장애물 없이 오로지 도달만 하면 되기 때문에 방문 체크를 위한 배열 visited만 선언해주었다.방문 조건은 (0,0) ~ (len-1, len-1)의 범위로만 한정하였다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960// BOJ 7562 나이트의 이동#include #include #include using namespace std; const int dx[] = {-2,..
문제링크 : https://boj.kr/9465 DP 문제로 아래의 3가지 케이스로 계산할 수 있다. case 1.o xx o case 2.o x xx x o case 3.x x o xo x x o 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647// BOJ 9465 스티커#include #include int max(int a, int b) { return a > b ? a : b;}int max(int a, int b, int c){ return max(max(a, b), c);} using namespace std; int main() { ios_base::sync_with_stdio(false)..