본문 바로가기
반응형

C20

[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] 백준 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] 자료형 정리 C언어에는 많은 자료형이 있다. 그 중에서 주로 쓰는 자료형은 거의 몇 개 정해져있지만 상황(큰 범위의 정수를 써야하는 경우라든지)에 따라 활용할 수 있는 자료형이 많기 때문에 모든 자료형을 한 눈에 볼 수 있도록 정리해볼 생각이다. 키워드 자료형 크기포맷형식 short 정수 2 byte%hd int 정수 4 byte%d long 정수 4 byte, (64비트)8 byte%ld long long 정수 8 byte, (64비트)8 byte 이상%lld char 정수(문자) 1 byte%c (문자열)%s float 실수 4 byte%f double 실수 8 byte%lf long double 실수 8 byte 이상%Lf long과 long long은 시스템에 따라 자료형의 크기가 달라진다. long은 32비.. 2018. 7. 18.
[C] 버블 정렬 (bubble sort) 가장 짧고 간단한 코드로 나타낼 수 있는 정렬 알고리즘이다. 하지만 이러한 알고리즘이 다 그렇듯 단점은 거의 모든 상황에서 최악의 성능을 보인다는 점이다. 시간 복잡도는 O(n^2)이다. 적은 양의 데이터에서는 굳이 다른 정렬법을 쓰지 않아도 되는 성능을 발휘하지만, 현업에서는 방대한 양의 데이터를 관리하기 떄문에 버블정렬은 웬만해서는 안쓴다고 한다. 버블 정렬은 1번째와 2번째, 2번째와 3번쨰 .... n-1번째와 n번째를 비교하여 정렬하고 그 다음엔 n-2, n-1번째 까지, 그 다음엔 n-3, n-2번째 까지 하나씩 줄여가면서 정렬한다. #include #include #include const int MAX_NUM = 100; void swap(int *a, int *b) { int tmp = .. 2018. 7. 12.
반응형