일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- SWEA
- 시뮬레이션
- PS
- dfs
- 완전탐색
- BOJ
- koitp
- 삼성 SDS 대학생 알고리즘 특강
- 구현
- 스택
- 삼성 기출
- 백트래킹
- dynamic programming
- 그리디
- BFS
- 브루트포스
- hackerrank
- 소수
- 맛집
- 알고리즘
- Algorithm
- DP
- 백준
- 동적 계획법
- sw expert academy
- 에라토스테네스의 체
- 잠실
- 다이나믹 프로그래밍
- 해커랭크
- C++
- Today
- Total
펭로그
문제링크 : https://koitp.org/problem/SDS_TEST_SPACE [삼성 SDS 대학생 알고리즘 특강 사전 테스트 A Type 1번 문제]1. 맵의 끝부분에서 이동하게 되면 반대편으로 이동된다.2. X 성분의 값과 Y 성분의 값을 각각 구해서 계산하는 편이 수월하다.위 두가지 조건을 가지고 간단하게 시뮬레이션을 해보면 쉽게 풀리는 문제다.빨간색 화살표는 r1과 r2 사이의 거리를 의미하는 것으로 |r2 - r1| 을 abs(r2 - r1) 로 나타낼 수 있다.파란색 화살표는 맵의 끝에서 r1까지의 거리, 맵의 끝에서 r2까지의 거리를 더한 것으로 그냥 r1 > T; for (int t = 0; t > N >> M >> r1 >> c1 >> r2 >> c2; int result = 0;..
문제링크 : https://koitp.org/problem/SDS_TEST_PAGE [삼성 SDS 대학생 알고리즘 특강 사전 테스트 A Type 3번 문제]처음으로 읽은 페이지를 시작으로 하여 건너뛸 페이지수 + 1 만큼 더해가면서 푸는 방법도 좋지만 이렇게 할 경우 (전체페이지수 - 초기페이지) / (스킵페이지 + 1) 만큼 실행을 해야한다.어짜피 input으로 받은 값들은 모두 다 if 문으로 조건을 판별해야하기 때문에 이 방법이 훨씬 더 낫다.(쉬어가는 페이지 - 초기페이지)가 (스킵페이지 + 1)로 나누어 떨어지는가를 체크하면 더 쉽고 빠르게 풀 수 있다. 123456789101112131415161718192021222324252627282930313233// KOITP_SDS_Atype_03#..
문제링크 : https://www.acmicpc.net/problem/2839 1. 설탕은 3kg과 5kg 두가지 밖에 존재하지 않는다.2. 두 무게로 나누어 떨어지지 않으면 무조건 무시된다.3. 최적의 값을 구하려면 5kg이 최대한 많아야 한다.4. 3kg씩 빼가면서 5의 배수가 최초로 나오는 시점이 가장 최적의 답이 될 수 있다. 1234567891011121314151617181920212223242526// BOJ 2839 설탕배달#include using namespace std; int main() {// freopen("../input.txt", "r", stdin); int n; cin >> n; int a = 0; int ans = -1; while(n >= 0){ if(n % 5 == ..
문제링크 : https://www.hackerrank.com/challenges/torque-and-development 1234567891011121314151617181920212223242526#include using namespace std;vector p;int f(int a) { return p[a] == a ? a : p[a] = f(p[a]); }void u(int a, int b) { p[f(a)] = f(b); }int main() { int T; cin >> T; while (T--) { int N, M, a, b; long long c, d; cin >> N >> M >> c >> d; p.clear(); p.resize(N); iota(p.begin(), p.end(), 0); ..
문제링크 : https://www.hackerrank.com/challenges/counter-game 1234567891011121314151617181920212223242526272829#include using namespace std; string counterGame(unsigned long long int n) { // Complete this function int cnt = 0; while(n) { n &= (n-1); cnt++; } if(cnt&1) return "Louise"; else return "Richard"; //return cnt%2?"Louise":"Richard";} int main() { int t; cin >> t; for(int a0 = 0; a0 > n; cout