본문 바로가기
반응형

백준38

[C] 백준 2869번: 달팽이는 올라가고 싶다 수학적 지식이 필요한 문제이다. 이분 탐색법으로도 풀 수 있지만 항상 더 짧고 간단하게 끝내는 것이 좋지 않은가? 그래서 한 줄 짜리 수식 하나로 끝냈다. 시간 제한을 보면 알 수 있듯이 상수시간, O(1) 내로 풀어야한다. 그래서 선택할 수 있는 방법이 한 줄 수식과 이분 탐색 밖에 없는 것이다. 아마 반복문을 쓰면 백퍼센트 시간 초과가 뜰 것이다. 입출력 예시 입력 출력 2 1 5 4 입력 출력 10 3 548 정답 코드 #include int main() { int A, B, V; int day; scanf("%d %d %d", &A, &B, &V); day = (V - B - 1) / (A - B) + 1; printf("%d", day); return 0; } 코드 설명 1. A, B, V를 입.. 2018. 7. 25.
[C] 백준 2851번: 슈퍼 마리오 쉽지만 점수를 더하는 과정에서 조건을 정해줄 때 약간 헷갈릴 수도 있는 문제다. 나도 헷갈렸다. 정답 코드 #include #include int main() { int mush[10]; int sum = 0; int i; for (i = 0; i < 10; i++) { scanf("%d", mush + i); } for (i = 0; i < 10; i++) { if (abs(sum + mush[i] - 100) 2018. 7. 25.
[C] 백준 1769번: 3의 배수 숫자 1,000,000자리라는 조건을 1,000,000까지라고 봐서 사실상 서로 다른 코드를 두 번 짰다. 이래서 시력이 좋아야 고생을 안한다. 백만자리까지 입력 가능하기 때문에 C언어에서는 문자열로 해결해야한다. 이럴 때마다 파이썬을 쓰고 싶어진다. 입출력 예시 입력 출력 9 0YES 힌트) 9 (0번 변환, 3의 배수) 입력출력12345673NO힌트) 1234567 -> 28 -> 10 -> 1 (3번 변환, 3의 배수 아님) 정답 코드 #include #include void sumAll(char *, int *); void pasteInt(char *, int); int isThree(int); int main() { char n[1000001]; int int_n = 0; int count = .. 2018. 7. 22.
[C] 백준 1237번: 정ㅋ벅ㅋ 나는 이 문제를 품으로써 우주를 정ㅋ벅ㅋ 했다. 이 문제의 정답 비율은 왜 이렇게 낮을까? 이 문제는 아주 쉽지만 어려우면서 간단하면서도 복잡하다. 우주 정ㅋ벅ㅋ이 쉬울리가 있나. 입출력 예시 입력 출력 문제의 정답 힌트) 우주 정ㅋ벅ㅋ을 할 사람에게는 예시 따윈 없다. 정답 코드 #include int main() { printf(" "); return 0; } 코드 설명 1. 사실 정답 코드에도 답이 적혀있지 않다. 2. 어떻게 해야 정답인지 궁금하면 입출력 예시 안에 출력 예시 칸을 드래그 해보자. 3. 우리는 함께 우주를 정ㅋ벅ㅋ했다. 2018. 7. 22.
[C] 백준 1059번: 수2 테스트케이스가 별로 없어서 약간 해멘 문제이다. 실제로 틀리는 사람들 중에는 테이스케이스가 딱 하나 밖에 없어서 헷갈려 틀리는 경우가 대다수일거라고 생각된다. 입출력 예시 입력 출력 21 53 3 힌트) Lucky Set이 1, 5이고 N이 3인 경우 N을 포함하는 Unlucky 구간은 [2, 3]. [2, 4], [3, 4]로 3가지이다. 입력 출력 41 7 14 105 7 힌트) Lucky Set이 1, 7, 14, 10이고 N이 5인 경우 N을 포함하는 Unlucky 구간은 [2, 5], [2, 6], [3, 5], [3, 6], [4, 5], [4, 6], [5, 6]로 7가지이다. 정답 코드 #include void sort(int *, int); int search_Unlucky(int *, .. 2018. 7. 20.
[C++] 백준 1929번 소수 구하기 (에라토스테네스의 채) m과 n을 입력받고 m과 n 사이에 있는 소수를 출력하는 프로그램이다. 단, 에라토스테네스의 채를 이용해서 풀어야한다. 미리 1~1000000 까지의 수 중에서 소수인 수를 걸러내고, m부터 n까지의 값 중 소수인 것을 출력한다. #include int main() { bool num[1000001]; int m, n; int i, j; scanf("%d %d", &m, &n); for (i = 2; i 2018. 7. 4.
반응형