본문 바로가기

문제 풀이/백준(BOJ)201

[C] 백준 4153번 : 직각삼각형 www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 문제 접근 1. 세 수를 받은 뒤 최댓값을 찾는다. 2. 반복문을 이용해서 최댓값이 아니라면 제곱한 값을 임시 변수에다가 더해준다. 3. 임시 변수와 최댓값의 제곱을 비교한다. 느낀점 처음에는 직관적으로 조건문을 이용해서 코드를 구현했지만 너무 코드가 길고 썩 좋은 방법이 아닌 것 같아서 다른 분들이 한 것을 참고했다. 나와 같은 방법도, or을 활용하는 방법도 있었지만 첫 코드를 작성하면서 같이 구상한 방법과 비슷한 코드를 찾.. 2021. 3. 21.
[C] 백준 3009번 : 네 번째 점 www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 문제 접근 1. 1번점과 2번점이 같고 1번점이 3번점과 다르다면 4번점은 3번점과 같다. 2. 1번점과 2번점이 다르고 1번점과 3번점이 같으면 4번점은 2번점과 같다. 3. 1번점과 2번점이 다르고 1번점과 3번점이 다르면 4번점은 1번점과 같다. 느낀점 생각보다 쉽게 풀어서 다른 분들의 코드를 봤는데 배열을 2개 만들던가 각 위치마다 따로 변수를 만들었다. 뭔가 혼자 2차원 배열로 문제를 푼 것 같아서 뿌듯했다. 근데 직사각형이 만들어지지 않는 조건을 넣어야하나 했는데 정답이길레 싱겁다.. 2021. 3. 20.
그 동안의 1일 1코딩 실천(2) 20.11.23 #define _CRT_SECURE_NO_WARNINGS_ #include #include int main() { char ch[1000001] = ""; scanf("%[^\n]", &ch); int i = 0, cnt = 0; char* tok = strtok(ch, " "); while (tok != NULL) { tok = strtok(NULL, " "); cnt++; } printf("%d", cnt); return 0; } 20.11.24 #include int main() { char num1[4], num2[4]; scanf("%s %s", &num1, &num2); if (num1[2] > num2[2]) { for (int i = 2; i >= 0;i--) { print.. 2021. 3. 19.
[C] 백준 1085번 : 직사각형에서 탈출 www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 접근 1. 4가지 경우(왼쪽, 오른쪽, 위, 아래 경계선)을 나누고 그 중 최소값을 출력 느낀점 생각보다 너무 쉬워서 당황한 문제. 사실 대각선도 따져야하나 했지만 생각해보니 직선 거리가 최소일 수 밖에 없음! 코드 #define _CRT_NO_SECRUE_WARNING_ #include #define min(x,y) x>y ? y : x int main() { int x, y, w, h; s.. 2021. 3. 19.
[C] 백준 9020번 : 골드바흐의 추측 www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 문제 접근 1. 입력받은 숫자가 짝수면 반복을 시작 2. 입력받은 숫자(n)의 반부터 시작해서 하나씩 숫자를 늘려 처음 찾은 소수(j)와 n-j가 소수인지 확인 느낀점 처음에는 되게 난해했지만 이미 골드바흐의 추측대로 소수+소수가 우리가 입력한 숫자라는 사실과 입력받은 숫자의 반에서 가장 가까운 소수가 그 소수를 뺀 값이 결국 두 수 차이의 최소라는 점을 이해해서 생각보다 쉽게 풀었다. 하지.. 2021. 3. 18.
[C] 백준 4948번 : 베르트랑 공준 www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 문제 접근법 1. 에라토스테네스의 체를 이용해서 최대 범위까지의 소수를 구한다. (배열을 활용) 2. n을 입력받고 주어진 범위 내의 소수의 갯수를 카운트해서 출력 느낀점 처음에 단순하게 함수를 만들어서 n 값을 입력 받을 때마다 계산하는 쪽으로 생각했다. 하지만 주어진 시간은 1초였고 찾아보니 에라토스테네스의 체라는 소수 찾는 알고리즘이 있었다. 이번 기회로 새로운 알고리즘을 공부했지만 계속 소수 문제.. 2021. 3. 17.