2023년 3월 7일에 작성됨 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 문제 분석 각 알파벳 단어마다 걸리는 시간을 구하고, 입력받은 단어를 분석하여 총 걸리는 시간을 구해본다. 소스 코드 (⭕) #include #include // strlen 함수 사용하기 위한 헤더파일 int NUM(int n);// 사용자 정의 함수 NUM 선언 int main() { char munja[16]; int i, sum = 0; scanf("%s", munja, sizeof(munja)); for (i = 0; i < strlen(mu..
2023년 3월 6일에 작성됨 https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 문제 분석 각 국가마다 번호, 금, 은, 동 메달의 변수는 고정이므로 구조체를 이용하여 접근해본다. 소스 코드 (⭕) #include #include struct Medal// 각 국가의 번호와 메달 수를 담을 Medal 구조체 생성 { int country; int gold; int silver; int bronze; }; int main() ..
2023년 3월 5일에 작성됨 https://www.acmicpc.net/problem/24389 24389번: 2의 보수 컴퓨터는 뺄셈을 처리할 때 내부적으로 2의 보수를 사용한다. 어떤 수의 2의 보수는 해당하는 숫자의 모든 비트를 반전시킨 뒤, 1을 더해 만들 수 있다. 이때, 32비트 기준으로 처음 표현했던 수와 www.acmicpc.net 문제 분석 n을 입력받고, n과 n의 2의 보수의 이진수를 배열에 넣고 이를 바교하여 서로 다른 비트 수를 구해본다. 소스 코드 (⭕) #include int main() { int n, cnt = 0, diff_bit = 0; int binary[33] = { 0 };// 정수 n의 2진수 담을 배열 int result[33] = { 0 };// n의 보수 ..
2023년 3월 4일에 작성됨 https://www.acmicpc.net/problem/3447 3447번: 버그왕 입력은 여러 줄의 소스 코드로 이루어져 있다. 이 소스 코드는 백준이가 작성한 버그를 찾는 프로그램으로 이미 처리가 되어있다. 각 줄은 100글자 이내이고, 입력은 파일이 끝날 때 끝난다. 줄의 www.acmicpc.net 문제 분석 예제 입력에서 "BUG"라는 글자를 찾아서 완전히 없앤 결과를 출력해준다. 소스 코드 (⭕) #include #include int main() { char str[101]; char bug[] = "BUG"; // 입력받을 문자열이 없을 때까지 반복 while (fgets(str, 101, stdin) != NULL) { // BUG 문자열이 없을 때까지 반..
2023년 3월 3일에 작성됨 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 문제 분석 배열을 이용하여 입력을 받고 문제를 해결한다. 소스 코드 (⭕) #include int main() { int arr[31] = { 0 }; int i, num; for (i = 1; i
2023년 2월 26일에 작성됨 https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 문제 분석 직각삼각형이 되는 공식인 피타고라스의 정리를 이용한다. 직각삼각형에서 빗변 길이의 제곱은 다른 두 변의 길이의 제곱의 합과 같다. 소스 코드 (⭕) #include int main() { int a, b, c, max; while (1) { scanf("%d %d %d", &a, &b, &c); if (a == 0 && b == 0 && c == 0) break; if (..
2023년 2월 25일에 작성됨 https://www.acmicpc.net/problem/2446 2446번: 별 찍기 - 9첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.www.acmicpc.net 문제 분석역삼각형과 삼각형 모양을 for문을 활용하여 출력해준다. 소스 코드 (⭕)#include int main(void){ int n, cnt; scanf("%d", &n); cnt = n; for (int i = 0; i 코드 분석1. n을 입력받고, 역삼각형을 먼저 출력하기 위해 n번 반복하는 반복문을 세워준다. 1-1. 0번부터 n-1번까지 1씩 증가하도록 반복하여 공백을 출력해준다. 1-2. 2*cnt-1개부터 2개씩 줄어들도록 반복마다 cnt..
2023년 2월 24일에 작성됨 https://www.acmicpc.net/problem/2445 2445번: 별 찍기 - 8 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 분석 별, 공백, 별 순으로 해서 for문을 이용하여 출력한다. 예제 출력을 대칭이 되도록 가로로 잘랐을 때 윗 부분 - 별 개수 +1씩, 공백 -1씩 아랫 부분 - 별 개수 -1씩, 공백 +1씩 되는 규칙이 있다. 소스 코드 (⭕) #include int main() { int n, cnt1, cnt2; scanf("%d", &n); cnt1 = n; for (int i = 0; i < n; i++) { for (int j = 0; j 0; k--) { printf(" "); } cnt..
2023년 2월 23일에 작성됨 https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 분석 n개의 정수를 입력했을 때 그중 최솟값과 최댓값을 구하는 문제이다. 소스 코드 (⭕) #include int main(void) { int N, min = 1000001, max = -1000001; int num; scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%d",..
2023년 2월 21일에 작성됨 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 분석 N개의 자연수 합이 최댓값이 되려면 1부터 2, 3, 4...까지 차례대로 더해준다. 1부터 n까지 더한 누적합이 s보다 커지게 되면, 커지기 직전의 가장 마지막에 더해준 자연수가 최댓값이 된다. 예를 들어 s=20이면, 1+2+3+4+5+6=21>20(커짐), 1+2+3+4+5=15 최댓값은 5가 된다. 소스 코드 (⭕) #include int main() { long long int S; long long int i = 1, sum = 0; scanf("%d", &S)..