일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 물채우기
- 처우협의
- 13908
- boj #19237 #어른 상어
- compose
- 성적평가
- 퇴사통보
- Docker
- msSQL
- 6987
- 처우산정
- 매개변수탐색
- 경력
- upper_bound
- incr
- 기술면접
- BFS
- OFFSET
- BOJ
- 파라메트릭
- @P0
- dfs
- 오퍼레터
- 백준
- 연결요소
- 백트래킹
- 소프티어
- 이분탐색
- Kafka
- softeer
- Today
- Total
목록알고리즘 문제/BOJ (413)
기술 블로그
https://www.acmicpc.net/problem/16236 최근에 다시 푼 코드 : https://hsdevelopment.tistory.com/225 2018년 하반기 삼성 SW 역량 테스트 문제이다. 생각보다 오래 걸렸는데, 이미 v안에 있는 것들은 먹을 수 있는 것이라서 굳이 크기를 비교할 필요가 없었다. 나는 무식하게 for문 안에서 먹이의 크기까지 비교했었다. 덕분에(?) vector 안에도 pair를 2개 선언했었다. 코드가 2개인데, 하나는 그냥 for문을 활용해 먹이를 찾는 것이고, 다른 코드는 sort를 활용한 것이다. 나중에 시간 된다면, vector v; 가 정렬이 어떻게 되는지 알아봐야겠다.위치도 바꿔서 알아봐야겠다. for문 활용123456789101112131415161..
https://www.acmicpc.net/problem/2869 예제 및 다른 테스트 케이스들을 활용하여내가 생각한 과정을 적으면서 코드를 작성하였다. 아래는 내가 생각한 과정 케이스들이다. 3 1 6답 36 - 3 = 33 - 1 = 23 / 2 = 11*(3 - 1) + 3 >= 6 ? No 2 1 5답 45 - 2 = 32 - 1 = 13 / 1 = 33 * (2 - 1) + 2 >= 5 ? Yes 그렇다면 3 + 1 5 2 100답 33100 - 5 = 955 - 2 = 395 / 3 = 3131 * (5 - 2) + 5 >= 98? No 4 2 100답 49100 - 4 = 964 - 2 = 296 / 2 = 4848 * (4 - 2) + 4 >= 100? Yes 그렇다면 48 + 1 1234..
유클리드 알고리즘이다. https://www.acmicpc.net/problem/2609 12345678910111213141516171819202122232425262728293031323334#include #include #include #include #include #include #include #include #include #include using namespace std; // 최소공배수 * 최대공약수 = p * q int gcd(int p, int q){ if (q == 0) return p; return gcd(q, p%q);} int main(void){ int p = 0, q = 0; scanf("%d %d", &p, &q); int GCD = gcd(p, q); printf("..
약수의 개수를 묻는 문제이다. https://www.acmicpc.net/problem/13225 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include #include #include #include #include #include #include #include #include #include using namespace std; #define MAX 10000 int C = 0; int Divisors[MAX + 1] = { 0, }; void getFactorsBrute(){ memset(Divisors, 0, sizeof(Divisors)); for (int i = 1; i
약수의 개수를 응용한 문제이다. https://www.acmicpc.net/problem/13226 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#include #include #include #include #include #include #include #include #include #include using namespace std; #define MAX 10000000 int C = 0; int Divisors[MAX + 1] = { 0, }; void getFactorsBrute(){ memset(Divisors, 0, sizeof(Divisors)); f..
기본적인 구현 문제다. 문제 그대로 구현하면 된다. https://www.acmicpc.net/problem/4673 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#include #include #include #include int num[10001] = { -1, }; void selfNumber(){ for (int i = 1; i
어떻게 보면 삼분탐색(?)이다. 아이디어는 다른 분의 코드를 보면서 활용하였다. https://www.acmicpc.net/problem/2473 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374#include #include #include #include #include #include #include #include #include #include using namespace std; vector v; int N = 0; int f = 0, s = 0, t = 0; long long ll; void S..
https://www.acmicpc.net/problem/10871 굳이 배열을 사용할 필요가 없다. 12345678910111213141516171819202122232425262728#include #include #include #include #include #include #include #include #include #include using namespace std; int main(void){ int num = 0, N = 0, X = 0, idx = 0; scanf("%d %d", &N, &X); for (int i = 0; i