전체 글

코딩하는 대학생에서 개발자까지
백준(S5) 1436번: 영화감독 숌 (C언어 C11 C99)
코드를 보기 전에: 이 문제는 브루트포스의 대입하는 사고와 수학적 사고가 같이 필요한 문제였다. 666이 들어간 숫자를 찾으려면 1000으로 나눠서 나머지가 666이 나와야 한다. 6660같은 경우에는 1000으로 나눈 나머지가 666이지 않으므로, 수학적 사고도 필요하다. 이럴때는 나누기 10을 하면 된다. 코드: 1234567891011121314151617181920212223242526#include #include int main(){ int res = 665; int num; scanf("%d", &num); int a = 0; while (1) { if (a == num) { printf("%d", res); break; } res++; for (int i = 0; i
백준(S5) 4673번: 셀프넘버 (C언어 C11 C99)
코드를 보기전에: 나는 이 문제를 배열을 이용해 쉽게 풀었다. 배열을 0으로 초기화 시킨 뒤에 셀프 넘버 아닌 수에는 -1 저장하면 쉽게 구분할수 있다. 그리고 1, 10, 100, 1000의 자리 숫자 각각의 값을 구하는것도 중요한 문제였다 코드 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 32 33 34 35 36 37 38 39 40 41 42 43 44 #include int num[10000]; // 나는 문자열을 이용해 푸는 방법을 생각해봤다. int result(int x); int main() { int res; for (int a = 1; a
백준(S2) 11047번: 동전 0 (C언어 C11 C99)
코드를 보기 전에: 이 문제는 그리디 알고리즘이다. 동전 문제는 그리디 알고리즘의 정말 단골 문제다. 나는 동전 문제를 풀때마다 입력된 값에서 큰 동전부터 빼도록 한다. Fullcode 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include int coin[10]; int main() { int n, k; int cnt = 0; scanf("%d %d", &n, &k); for (int a = 0; a 0) // k가 0이 되면 끝나므로 굳이 break문을 만들필요가 없어졌다. { if (coin[a] > k) // 배열 값이 입력한 값보다 크면 다음 배열로 넘어가게 만들었다. a--; else { k -= coin[a]; // 입..
백준(S5) 7568번: 덩치 (C언어 C11 C99)
코드를 보기 전에: 이 문제는 복잡해 보이지만, 쉽게 생각하면 정말 쉬운 문제가 된다. 문제 조건 중에서 몸무게(a>b), 키(a>b)이면, a의 등수가 올라가고, 몸무게(a>b), 키(a
백준(B2) 2231번: 분해합 (C언어 C11 C99)
코드를 보기 전에: 이 문제를 쉽게 풀어볼려고 20분동안 고민을 하다가 그냥 막무가내로 풀었다. 속으로 내가 선택한 노가다다 악으로 깡으로 버티자 하면서 풀었다. 내가 생각하는 이 문제의 핵심 중점은 숫자가 주어졌을때 각 자리수의 숫자를 한개의 자연수로 만드는 것이다. Fullcode 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 32 #include int num(int x); int main() { int n; scanf("%d", &n); printf("%d", num(n)); return 0; } int num(int x) { int size, sum; int result = 1000000; i..
백준(S3) 1748번: 수 이어 쓰기 1 (C언어 C11 C99)
코드를 보기 전에: 이 문제는 브루트포스 알고리즘인것같기도 하고, 동적계획법 알고리즘인것같기도 하다. 이 문제를 단순하게 풀었다면 대부분 시간초과가 나왔을 것이다. 컴퓨터는 1초에 1억번의 계산을 할수 있는데, 이 문제에서는 입력의 값이 1억까지 이기때문이다. 공식: 주어진 값 - a + 1을 하면, a (예를들어 100 이면) 세자리 수의 자리수 값을 더한 값이 나온다. Fullcode 1 2 3 4 5 6 7 8 9 10 11 12 #include int main() { int num; long long result = 0; scanf("%d", &num); for (int a = 1; a
코딩하는_대학생
코딩하는 대학생에서 개발자까지