일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 크레인 인형뽑기
- JS
- old-1
- 웹해킹
- 웹케이알
- 코드엔진
- 자바스크립트
- 코딩테스트 연습
- Old-17
- boj
- 리버싱
- 게임 프로그래밍
- 딥러닝
- 신규 아이디 추천
- c언어 게임
- 소프트맥스 함수
- 백준
- 네트워크
- tcp
- c++
- 자바
- Old-14
- 계단함수
- 퍼셉트론
- openCV
- 5585
- 10809
- C언어
- 프로그래머스
- webhacking.kr
- Today
- Total
목록boj (30)
SteffenLee
안녕하세요. 오늘은 백준 브론즈 2문제인 알파벳 찾기를 풀이해보겠습니다. 알파벳 소문자로만 데이터가 주어지고, 해당 데이터에서 처음 알파벳이 나오는 지점을 저장해주고 출력해주는 문제입니다. 이 문제에서 핵심은 알파벳이 '처음'으로 등장하는 위치를 저장해주는 것이 중요하다고 생각했습니다. 그래서 저 같은 경우 위치를 저장해주는 배열을 애초에 -1로 초기화하고, 해당 위치 배열의 값이 -1이 아니면 건너뛰도록 했습니다. 코드를 보겠습니다. #include #include using namespace std; int main() { string str; int arr[100]; char alpa[26] = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n',..
이번에는 백준 5585 거스름돈을 풀어보겠습니다. 지불할 돈을 입력하고 잔돈의 개수를 구하면되는 문제입니다. 이건 최대값(500)부터 빼주면서 계산해주면 됩니다. 코드를 보겠습니다. #include using namespace std; int main() { int n, tot = 0, cnt = 0, tmp = 0;; int arr[6] = { 500, 100, 50, 10, 5, 1 }; cin >> n; tot = 1000 - n; for (int i = 0; i = arr[i]) { tot -= arr[i]; ++cnt; } else break; } } cout
안녕하세요. 오늘은 BOJ 1026번 보물을 풀어보겠습니다. 그리디 알고리즘으로 분류되어 있는 문제입니다. 배열 두개에 N개의 수열을 입력받고 A * B의 총합을 구하는데, 그 총합이 최소가 되게해야하는 문제입니다. 두 수열을 곱한 값의 총합이 최소가 되려면 두 수열중 큰 값은 작은 값과 곱해져야만 최소를 만들 수 있습니다. 예제를 들어 설명하면, 두 수열 A,B를 모두 정렬하면, A : 0, 1, 1, 1, 6 B : 1, 2, 3, 7, 8 한 뒤에 배열 한 개를 역순으로 뒤집어서 계산해줬습니다. S = A[0] * B[4] + A[1] * B[3] + ... + A[4] *B[0] 이렇게 계산해주면 예제처럼 합이 18이 나오게 됩니다. 코드를 보겠습니다. #include #include #inclu..
문제 분류에서 그리디 알고리즘으로 분류되어 있는 문제입니다. N명의 사람들이 각각 돈을 인출하는데 N분이 걸립니다. 이 문제에서는 모든 사람들이 인출하는데까지 최단시간이 걸리게 해야합니다. 그러려면, 인출하는데 시간이 짧게 걸리는 사람부터 돈을 인출하게 되면, 최단시간이 나오게 됩니다. 위 문제에서 주어진 예제를 보면 순서를 바꾸지 않고 그냥 진행하게 되면 각 사람들이 돈을 인출하는데 걸리는 시간의 합이 39분이 나옵니다. 여기서 시간이 짧게 걸리는 순으로 나열해서 계산을 하게되면 총 32분으로 시간이 단축됩니다. 그러면 프로그램의 흐름은, 시간을 내림차순으로 정리하고, 1번 사람 시간 + (1번 사람 시간 + 2번 사람 시간) + ....+(1번 사람 시간 +...+ n번 사람 시간) 이렇게 계산하면 ..
간단한 입출력 문제입니다. N을 입력 받고, 1~N까지의 합을 출력해주면 됩니다. 코드를 보겠습니다. #include using namespace std; int main() { int k, sum = 0; cin >> k; for (int i = 1; i
2007년 중 한 날을 입력 받고, 그 날짜의 요일을 출력하면 되는 문제입니다. 월 화 수 목 금 토 일 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 2/1(32) 2/2(33) 2/3(34) 2/4(35) 2/6(36) 2/7(37) 2/8(38) 2/9(39) 2/10(40) 2/11(41) ..... 2007년에는 이런식으로 날이 진행되는데, 여기서 포인트는 7일을 주기로 요일이 같다는 점입니다. 1/1이 월요일 +7일 하면 1/8일이 월요일 이 점을 이용해서 나머지 연산자를 사용해서 나머지가 1이면 월요일, 2면 화요일... 이렇게 문제를 풀 수 있습니다. 코드를 보겠습니다. #include ..
간단한 입출력 문제입니다. 단순히 여러 개의 테스트 케이스를 받아 출력하면 되는 문제입니다. 코드를 보겠습니다. #include using namespace std; int main() { int a, b; while (cin >> a >> b) { cout
안녕하세요 백준 9517번 아이 러브 크로아티아를 풀이하겠습니다. 먼저 문제를 보겠습니다.입출력 조건을 보겠습니다. 문제는 간단합니다. K 번째 사람부터 시작해서 문제를 맞히면 폭탄을 옆 사람에게 전달하고, 풀지 못하거나 패스하면 K 번째 사람이폭탄을 가지고 문제를 풀 때까지 가지고 있으면 됩니다. 그리고 3분 30초가 되면 폭탄은 터집니다. 소스를 보겠습니다.123456789101112131415161718192021#include#includeusing namespace std; pair cr;int K, N, sum = 0;int main() { cin >> K >> N; while (N--) { cin >> cr.first >> cr.second; sum += cr.first; if (sum >=..