이번 알고리즘 문제 풀이는 C로 진행했습니다
코드에 오탈자나 문제가 있으면 언제든지 댓글로 알려주세요!
A. 조건문
1. 두 수 비교하기
a. 문제지 : 1330
b. 정답
📚 풀이
#include <stdio.h>
int main(){
int A, B;
scanf("%d %d", &A, &B);
if(A>B){
printf(">\n");
}else if(A<B){
printf("<\n");
}else{
printf("==\n");
}
return 0;
}
2. 시험 성적
a. 문제지 : 9498
b. 정답
📚 풀이
#include <stdio.h>
int main() {
int score;
scanf("%d", &score);
if (score >= 90 && score <= 100) {
printf("A\n");
} else if (score >= 80) {
printf("B\n");
} else if (score >= 70) {
printf("C\n");
} else if (score >= 60) {
printf("D\n");
} else {
printf("F\n");
}
return 0;
}
3. 윤년
a. 문제지 : 2753
b. 정답
📚 풀이
#include <stdio.h>
int main() {
int year;
scanf("%d", &year);
if (year % 400 == 0) {
printf("1\n");
} else if ((year % 4 == 0) && (year % 100 != 0)) {
printf("1\n");
} else {
printf("0\n");
}
return 0;
}
4. 사분면 고르기
a. 문제지 : 14681
b. 정답
📚 풀이
#include <stdio.h>
int main() {
int A, B;
scanf("%d %d", &A, &B);
if (A > 0 && B > 0) {
printf("1\n");
} else if (A < 0 && B > 0) {
printf("2\n");
} else if (A < 0 && B < 0) {
printf("3\n");
} else {
printf("4\n");
}
return 0;
}
5. 알람 시계
a. 문제지 : 2884
b. 정답
📚 풀이
#include <stdio.h>
int main(){
int hour, min;
scanf("%d %d", &hour, &min);
if(min<45){
if(hour==0){
hour=23;
}else{
hour--;
}
min += 15;
}else{
min -= 45;
}
printf("%d %d", hour, min);
}
6. 오븐 시계
a. 문제지 : 2525
b. 정답
📚 풀이
#include <stdio.h>
int main() {
int hour, min, cook;
scanf("%d %d %d", &hour, &min, &cook);
min += cook;
if (min >= 60) {
hour += min / 60;
min %= 60;
if (hour >= 24) {
hour %= 24;
}
}
printf("%d %d\n", hour, min);
return 0;
}
7. 주사위 세개
a. 문제지 : 2480
b. 알고리즘
- 세 개의 주사위 눈을 입력받음
- 초기화된 prize 변수를 이용하여 상금을 저장할 공간 생성
- 첫 번째 조건문: 모두 같은 눈이 나오는 경우
주사위의 눈이 모두 같은지 비교
만약 모두 같은 눈이라면, 상금을 계산하여 prize에 저장 - 두 번째 조건문: 두 개의 눈이 같은 경우
주사위의 눈 중에서 두 개의 눈이 같은지를 하나씩 비교
같은 눈을 찾으면, 해당 눈을 same_dice 변수에 저장하고 상금을 계산하여 prize에 저장 - 세 번째 조건문: 모두 다른 눈이 나오는 경우
세 개의 주사위 눈 중에서 가장 큰 값을 저장(max_dice 변수) - 최종적으로 계산된 상금인 prize를 출력
- 프로그램 종료
c. 정답
📚 풀이
#include <stdio.h>
int main() {
int dice1, dice2, dice3;
scanf("%d %d %d", &dice1, &dice2, &dice3); // 세 개의 주사위 눈을 입력 받음
int prize = 0; // 계산된 상금을 저장할 변수 초기화
// 모두 같은 눈이 나오는 경우
if (dice1 == dice2 && dice2 == dice3) {
prize = 10000 + dice1 * 1000; // 상금 계산
}
// 두 개의 눈이 같은 경우
else if (dice1 == dice2 || dice1 == dice3 || dice2 == dice3) {
int same_dice;
if (dice1 == dice2) {
same_dice = dice1; // 같은 눈을 저장
} else if (dice1 == dice3) {
same_dice = dice1; // 같은 눈을 저장
} else {
same_dice = dice2; // 같은 눈을 저장
}
prize = 1000 + same_dice * 100; // 상금 계산
}
// 모두 다른 눈이 나오는 경우
else {
int max_dice = (dice1 > dice2) ? dice1 : dice2; // 두 주사위 중 큰 값을 선택
max_dice = (max_dice > dice3) ? max_dice : dice3; // 큰 값과 세 번째 주사위 값을 비교해서 최대값 선택
prize = max_dice * 100; // 상금 계산
}
printf("%d\n", prize); // 계산된 상금 출력
return 0;
}
'자료구조와 알고리즘 > 문제풀이' 카테고리의 다른 글
[Baekjoon] 단계별로 풀어보기 : 심화 1 (0) | 2023.08.24 |
---|---|
[Baekjoon] 단계별로 풀어보기 : 문자열 (0) | 2023.08.17 |
[Baekjoon] 단계별로 풀어보기 : 1차원 배열 (0) | 2023.08.16 |
[Baekjoon] 단계별로 풀어보기 : 반복문 (0) | 2023.08.16 |
[Baekjoon] 단계별로 풀어보기 : 입출력과 사칙연산 (0) | 2023.08.10 |