[백준 10817] 세 수 (bubble sort)

[백준 10817] 세 수 (bubble sort)

안녕하세요.

오늘은 백준 10817번 세 수라는 문제를 버블소트(bubble sort)를 이용해서 풀어보겠습니다.

(아래 간단한 bubble sort의 설명이 있지만 관심있다면 검색해보는 것을 추천드립니다.)

먼저 썸네일로 쓸 사진부터좀 ㅎㅎ

baekzoon10817 1

백준 10817번 문제

문제&조건

세 정수 A, B, C가 주어집니다.

(1크거나 같고 100작거나 같은 수)

이 세 정수가 주어질 때, 두 번째로 큰 정수를 출력 

예제 입력 및 출력

예제 입력1 : 20 30 10 --> 예제 출력 : 20

예제 입력2 : 20 20 10 --> 예제 출력 : 20

예제 입력3 : 40 40 40 --> 예제 출력 : 40

예제 입력4 : 20 10 10 --> 예제 출력 : 10

[백준10817] 코드

코드는 아래와 같으며 추후 깃허브에 추가할겁니다.

baekzoon10817 코드

문제 풀이

저는 이 문제를 bubble sort를 이용해서 풀어봤습니다.

bubble sort(거품 정렬)?

소개.

1. 인접한 두 수를 비교해서 큰 수를 뒤로 보내는 알고리즘

2. 원소의 이동이 거품이 올라오는 것 같다고 해서 bubble sort라는 이름을 가지게 됨.

3. 다른 정렬 알고리즘보다는 느린 편

4. 하지만 코드가 매우 단순 

 

bubble sort의 자세한 내용은 찾아보시는 것을 추천드립니다.

(매우 간단하고 흔한 알고리즘이라 많이 나와있고 어렵지도 않습니다.)

1. 먼저 for문으로 세 수를 입력을 받아서 배열에 저장합니다.

2. bubble sort를 이용해서 3개의 수를 정렬합니다.

-ex)입력 20 30 10을 입력받으면 10 20 30으로 정렬이 됩니다.

-정렬할 때 사용한 swap함수에 대한 설명은 아래의 글을 참고해주세요.

[프로그래밍/C 언어] - c언어 swap함수 문자와 문자 숫자와 숫자 값을 변경 

3. 정렬이 되었으니 두번째로 큰 수를 출력하는 것은 매우간단합니다.

- 3개밖에 안되기 때문에 가장 작은수=array[0], 두 번째= array[1], 가장 큰 수= array[2] 가 됩니다.

- 즉 array[1]을 출력하면 끝~

후기

처음에는 다른 사람들처럼 if문으로 때려박아서 풀려다가 이게 더 편해보여서 이걸로 풀었습니다.

아직은 블로그에 올릴만한 문제가 별로 없네요. 좀 괜찮은 문제를 올리고 싶은데 아직 못풀었습니다. ㅎㅎ

https://www.acmicpc.net/problem/10817

baekzoon10817 2

Designed by JB FACTORY