본문 바로가기
Algorithm

백준 baekjoon 단계별로 풀어보기 - 4. if문 사용해보기

by 리코더@typing4life 2018. 4. 27.

안녕하세요! 꼬부기입니다.

백준 사이트에서 알고리즘 공부를 하고 있는 분들께 이 시리즈가 도움이 되었으면 하는 바램으로 오늘은 4번째 단계인 'if문 사용해보기'에 대해 포스팅하겠습니다. 이번 문제집은 조건문을 사용해야 하기 때문에 문제를 읽고 필요한 조건을 파악해서 적절한 위치해 if문, else if 등의 문법을 잘 이용해야 합니다. 그럼 첫 번째 문제부터 보도록 하겠습니다.

1. 백준 9498번 - 시험 성적

백준 9498번

시험 성적이 입력으로 들어왔을 때, 어느 점수 구간에 속하는지 if문을 통해 찾아내어 등급을 출력하는 문제입니다. 조건문if와 if else를 여러개 사용해서 해결할 수 있습니다. 코드는 다음과 같습니다.

2. 백준 10817번 - 세 수

백준 10817번

백준 10817번 예제

입력으로 세 개의 정수가 들어왔을 때, 그 중에서 두 번째로 큰 정수를 출력하는 문제입니다. 즉 크기가 가운데인 median을 출력하라는 문제입니다. 참고로 말씀드리면 5개의 숫자에 대해서 median을 찾기 위해서는 비교를 6번 이내로 찾을 수 있고, 7번 비교를 하면 정렬을 할 수 있습니다! 코드는 다음과 같습니다.

3. 백준 10871번 - X보다 작은 수

백준 10871번

여러 개의 정수가 있을 때 어떤 수 X보다 작은 수를 찾아서 출력하는 것을 요구하고 있습니다. 따라서 정수의 개수 N과 비교 대상이 되는 수 X를 입력받고, 다음 줄에서 들어오는 입력들을 반복문을 N번만큼 돌면서 X와 비교, 만약 X보다 작다면 그 수를 출력하면 됩니다. 주의하셔야 할 점은 마지막 원소일 경우 출력한 숫자 뒤에 공백이 붙으면 안된다는 것입니다. 코드는 아래와 같습니다.

4. 백준 1546번 - 평균

정수 N을 입력받고, N개 만큼 시험 점수가 입력으로 들어올 때, 그 중에서 가장 큰 값 MAX를 찾습니다. 그러면서 이 값들을 저장할 변수 하나를 선언해서 매 입력이 들어올 때마다 더해줍니다. 평균이란 것이 이 합을 N으로 나눈 값이기 때문입니다. 다만, 조건에서 모든 점수에 MAX 값을 나눈 다음 평균을 구하라고 했으나 한꺼번에 다 더한 뒤에 MAX로 한 번 나눈 것과 결과가 같습니다. 따라서 (합 / MAX * 100) / N 으로 계산 결과를 출력하면 됩니다. 물론 나눗셈과 곱셈이 식 순서대로 진행되도 상관없기 때문에 괄호는 사용하지 않으셔도 됩니다. 코드는 다음과 같습니다. 오차 범위가 10^-2까지라는 조건이 있으니, 출력할 때 %.2f를 이용하면 됩니다.

5. 백준 4344번 - 평균은 넘겠지

백준 4344번

테스트 케이스의 개수가 주어지고, 각 케이스 별로 학생들의 수와 각 점수가 주어집니다. 이 점수들의 평균을 구한 뒤에, 이 평균보다 높은 학생들의 비율을 소수점 셋째자리까지 출력하면 되는 문제입니다. 따라서 먼저 학생들의 평균을 구한 뒤, 그 점수를 넘는 학생 수를 전체 학생 수로 나눈 값을 백분율로 나타내면 됩니다. 코드는 다음과 같습니다.

6. 백준 1110번 - 더하기 사이클

백준 1110번

입력으로 정수가 들어왔을 때, 한자리면 앞자리가 0이라고 가정, 두 자리면 십의 자리와 일의 자리를 더한 뒤에 그 값을 일의 자리로, 그리고 원래 일의 자리를 십의 자리로 가지는 수를 생성하면 됩니다. 이 과정을 계속 반복하면서 원래 숫자로 돌아오게 되면 그 반복 수(사이클)를 출력하면 되는 문제입니다. 이 새로운 수를 만드는 과정이 어려우실 수 있으나, 조금만 생각해보고 차분히 코드를 짜보면 해내실 수 있습니다. 코드는 다음과 같습니다.

여기까지가 문제집 4단계 풀이었습니다.

모두 고생하셨습니다!!

반응형

댓글