drexqq
[Java, 자바] 백준알고리즘 단계별로 풀기 - 5단계 본문
10039번
문제
상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다.
어제 이 수업의 기말고사가 있었고, 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다.
기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다.
하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게 된다.
보충학습은 거부할 수 없기 때문에, 40점 미만인 학생들은 항상 40점을 받게 된다.
학생 5명의 점수가 주어졌을 때, 평균 점수를 구하는 프로그램을 작성하시오.
입력
입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다.
점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점수는 항상 정수이다.
출력
첫째 줄에 학생 5명의 평균 점수를 출력한다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score[] = new int[5];
int sum = 0;
int avg;
for (int i = 0; i < score.length; i++) {
score[i] = sc.nextInt();
// 5의배수
if (score[i] % 5 != 0) {
i--;
System.out.println("5의배수를 입력해주세요");
}
// 40점 미만학생들은 40점으로 고정
if (score[i] < 40) {
score[i] = 40;
}
sum += score[i];
}
// 평균 = 총점 / 학생수
avg = sum / score.length;
System.out.println(avg);
}
}
5543번
문제
상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다.
햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다.
햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오.
입력
입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격은 100원 이상, 2000원 이하이다.
출력
첫째 줄에 가장 싼 세트 메뉴의 가격을 출력한다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int bugger[] = new int[3];
int drink[] = new int[2];
int minPrice = 0;
for (int i = 0; i < bugger.length; i++) {
bugger[i] = sc.nextInt();
if (bugger[i] < 100 || bugger[i] > 2000) {
System.out.println("가격은 100원이상 2000원 이하입니다.");
i--;
}
}
for (int i = 0; i < bugger.length-1; i++) {
for (int j = i + 1; j < bugger.length; j++) {
if (bugger[i] > bugger[j]) {
int temp = bugger[i];
bugger[i] = bugger[j];
bugger[j] = temp;
}
}
}
for (int i = 0; i < drink.length; i++) {
drink[i] = sc.nextInt();
if (drink[i] < 100 || drink[i] > 2000) {
System.out.println("가격은 100원이상 2000원 이하입니다.");
i--;
}
}
for (int i = 0; i < drink.length-1; i++) {
for (int j = i + 1; j < drink.length; j++) {
if (drink[i] > drink[j]) {
int temp = drink[i];
drink[i] = drink[j];
drink[j] = temp;
}
}
}
minPrice = bugger[0] + drink[0] - 50;
System.out.println(minPrice);
}
}
더 쉽고 간결하게 사용하는 방법도 있지만 최대한 풀어써보도록 노력해봤다.
10817번
문제
세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)
출력
두 번째로 큰 정수를 출력한다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num[] = new int[3];
for (int i = 0; i < num.length; i++) {
num[i] = sc.nextInt();
}
Arrays.sort(num);
System.out.println(num[1]);
}
}
이 문제를 보면위에 5543번을 얼마나 많이 풀어쓴지 알 수 있다.
2523번
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
예제
입력3
*
**
***
**
*
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
// 1 ~ 입력한 수까지 하나씩 증가하면서 출력
for (int i = 1; i <= num; i++){
for(int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
// 입력한수 -1 ~ 1까지 하나씩 감소하면서 출력
for (int i = num-1; i > 0; i--){
for(int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
2446번
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
예제
입력5
*********
*******
*****
***
*
***
*****
*******
*********
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
// 입력한 숫자만큼 반복
for (int i = 0; i < num; i++) {
// 공백 -> 0 0 / 1 1 / 2 2 /
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
// 별표시 2n-1개씩 표시 2개씩감소
for(int j = 0; j < (2 * num - 1) - (2 * i); j++){ // 별
System.out.print("*");
}
System.out.println();
}
// 입력한 숫자보다 1개 빼서 반복
for (int i = 0; i < num-1; i++) {
// 공백 -> 0 4 / 1 3 / 2 2 /
for (int j = 1; j < (num-1) - i; j++) {
System.out.print(" ");
}
// 별표시 3+2n개씩 표시
for(int j = 0; j < 3 + (2 * i); j++){ // 별
System.out.print("*");
}
System.out.println();
}
}
}
10996번
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
예제
입력1
*
입력2
*
*
*
*
입력3
*
*
*
*
*
*
*
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n*2; i++) {
// 짝수행
if (i % 2 == 1) {
for (int j = 0; j < n; j++) {
if (j % 2 == 1) {
System.out.print("*");
}
else {
System.out.print(" ");
}
}
}
// 홀수행
else {
for (int j = 0; j < n; j++) {
if (j % 2 == 1) {
System.out.print(" ");
}
else {
System.out.print("*");
}
}
}
System.out.println();
}
}
}
'공부노트 > 백준알고리즘' 카테고리의 다른 글
[Java, 자바] 백준알고리즘 단계별로 풀기 - 6단계 (0) | 2020.06.05 |
---|---|
[Java, 자바] 백준알고리즘 단계별로 풀기 - 3단계 (0) | 2020.05.29 |
[Java, 자바] 백준알고리즘 단계별로 풀기 - 2단계 (0) | 2020.05.26 |
[Java, 자바] 백준알고리즘 단계별로 풀기 - 1단계 (2) | 2020.05.26 |