일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컴퓨터 아키텍쳐
- 백준 17119
- 백준 2439번
- 알고리즘
- 17119
- #싸지방dns
- 일본여행 #나고야 #일본 #일본맛집 #아스칸논신궁
- 체인링크
- On-chain
- 10172
- 백준 1065번
- 백준 알고리즘 설탕
- 탈중앙화
- 그대로 출력하기
- 백준 10172
- 블록체인
- #싸지방 유튜브
- 카르테시
- 설탈 배달
- 클럭 주기
- 2839번
- 백준 17118
- #싸지방
- off-chain
- 백준
- 클럭사이클
- 프로그래밍
- 백준 10172번
- 백준 2839번
- 백준 알고리즘
- Today
- Total
킵고잉
백준 알고리즘 10817번: 세수 본문
지난번에 풀려다가 그냥 별 생각 안하고 넘어가서 다시 들고 왔다. (사실 if 문 마지막 단계 풀다 막혀서 온거다.) 이번 문제는 조금만 생각하면 금방 풀리는 문제다. 근데 왜 안풀고 넘어 갔을까 ?
아래 문제 나가신다.
세 수 성공
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 256 MB | 35647 | 15964 | 14283 | 47.691% |
문제
세 정수 A, B, C가 주어진다. 이 때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)
출력
두 번째로 큰 정수를 출력한다.
예제 입력 1
20 30 10
예제 출력 1
20
예제 입력 2
30 30 10
예제 출력 2
30
예제 입력 3
40 40 40
예제 출력 3
40
예제 입력 4
20 10 10
예제 출력 4
10
#
차근 차근 생각해서 보면 결국 세수를 비교 했을때 중간 수를 뽑을 수 있는 경우의 수를 if 문으로 만드면 된다. 그런데 if, else. if ,else로 계속 가면 코드가 난잡해지니 그 때 쓰라고 만든 else if 코드를 사용했다. 그렇게 해서 만든 소스코드는 아래에 있다.
#include <stdio.h>
using namespace std;
int main() {
int a = 0 , b = 0 , c = 0 ;
scanf("%d %d %d", &a, &b, &c);
if(a < b){
if(b < c){
printf("%d", b);
}
else if(a < c){
printf("%d", c);
}
else
printf("%d", a);
}
else{
if(b > c){
printf("%d", b);
}
else if(a > c){
printf("%d", c);
}
else
printf("%d", a);
}
}
처음에는 else 부분을 만들지 않고 돌릴려다가, 만약 첫번 째 수가 두번 째 수보다 커지게 되면 되지 않는다는걸 뒤늦게 알고 그렇지 않은 경우를 고려해서 바로 작성했다. 이렇게 해서 짠 알고리즘이지만 뭔가 찜찜한 기분이 사라지지 않는다... 조금더 쉽고 간결하게 짤수 있는 방법이 있을까 했지만 아직까지는 안되는거 같다. 그래서 이 문제는 여기까지!
'백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 17118번, 17119번: 그대로 출력하기 (0) | 2018.08.29 |
---|---|
백준 알고리즘 1110번: 더하기 사이클 (0) | 2018.08.27 |
백준 알고리즘 4344번: 평균은 넘겠지 (0) | 2018.08.27 |
백준 알고리즘 10871번: X보다 작은수 (0) | 2018.07.04 |
백준 알고리즘 11720번 숫자의 합 (0) | 2018.07.02 |