티스토리 뷰

Q.2557 숫자의 개수

- 세 개의 자연수 A, B, C가 주어질 때 A×B×C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.

예를 들어 A = 150, B = 266, C = 427 이라면 

A × B × C = 150 × 266 × 427 = 17037300 이 되고, 

계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.

 

입력 :

- 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다.

 

출력 :

- 첫째 줄에는 A×B×C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A×B×C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.

 

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.*;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt();
        int cnt[] = new int[10];
        int result = a*b*c;
        
        while(result != 0) {
            cnt[result%10]++;
            result /= 10;
        }
        for(int i = 0; i < 10; i++)
            System.out.println(cnt[i]);
    }
}    
cs

======================================================================================

Q. 8958 OX퀴즈

- "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.

"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

 

입력 :

- 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.

 

출력 :

- 각 테스트 케이스마다 점수를 출력한다.

 

<소스 코드>

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
import java.util.*;
 
public class Prac {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        
        for(int test_case = 0; test_case < T; test_case++) {
            String resultOfQuiz = sc.next();  //퀴즈 결과 입력
            
            int point = 1;//포인트 1로 초기화
            int answer = 0;//총 점수 0으로 초기화
            
            for(int i = 0; i < resultOfQuiz.length(); i++) {
                if(resultOfQuiz.charAt(i) == 'O') {//결과가 'O'라면
                    answer += point;      //answer에 point 더하기.
                    point++;              //point + 1
                }
                else                              //결과가 'X'라면
                    point = 1;            //point를 다시 1로 초기화
            }
            System.out.println(answer);
        }
    }
}    
cs

======================================================================================

Q.2920 음계

- 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다.

1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다.

연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오.

 

입력 :

- 첫째 줄에 8개 숫자가 주어진다. 이 숫자는 문제 설명에서 설명한 음이며, 1부터 8까지 숫자가 한 번씩 등장한다.

 

출력 :

- 첫째 줄에 ascending, descending, mixed 중 하나를 출력한다.

 

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.*;
 
public class Prac {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int input[] = new int[8];
        boolean asc = false;
        boolean desc = false;
        
        input [0= sc.nextInt();
        for(int i = 1; i < 8; i++) {
            input[i] = sc.nextInt();
            
            if(input[i] > input[i-1])
                asc = true;
        
            else
                desc = true;
        }
        System.out.println((asc && desc) ? "mixed" : (asc) ? "ascending" : "descending");
    }
}    
cs

======================================================================================

Q.10039 평균점수 

상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다.

어제 이 수업의 기말고사가 있었고, 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다. 기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다. 하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게 된다. 보충학습은 거부할 수 없기 때문에, 40점 미만인 학생들은 항상 40점을 받게 된다.

학생 5명의 점수가 주어졌을 때, 평균 점수를 구하는 프로그램을 작성하시오.

 

입력 :

입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다.

점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점수는 항상 정수이다. 

 

출력 :

첫째 줄에 학생 5명의 평균 점수를 출력한다.

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.*;
 
public class Prac {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] score = new int[5];
        int sum = 0;
        
        for(int i = 0; i < 5; i++) {
            score[i] = sc.nextInt();
            if(score[i] < 40)
                score[i] = 40;
            sum += score[i];
        }
        System.out.println(sum/5);
    }
}    
cs

======================================================================================

 

문제 사이트 및 참고 사이트 : https://www.acmicpc.net/step/6



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.

'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글

[백준]1316번, 그룹 단어 체커  (1) 2017.10.14
[백준]1157번 단어 공부  (0) 2017.10.09
[백준]1152번, 단어의 개수  (0) 2017.10.07
[백준]1065번 한수  (0) 2017.10.03
[백준]4673번 셀프 넘버  (0) 2017.10.02
댓글