[백준] 점수계산 – 2506


[백준] 점수계산 - 2506 1

(브론즈 III) 등급 – 2506

문제가 있는 링크

2506호: 등급

OX 문제는 답이 맞거나 틀린 문제입니다.

OX 다문항 시험에서 답이 순차적으로 맞으면 다음과 같이 점수를 계산하여 가산점을 얻습니다.

www.acmicpc.net

성능 요약

메모리: 17740KB, 시간: 208ms

분류

산술, 구현, 수학

문제 설명

OX 문제는 답이 맞거나 틀린 문제입니다.

OX 객관식 시험에서 연속 정답에 대해 가산점을 부여하기 위해 다음과 같이 점수를 산정하기로 하였다.

질문 1이 맞으면 1점으로 계산됩니다.

이전 질문에 대한 답변이 오답인 경우 첫 번째 정답을 1점으로 계산합니다.

또한 연속된 문항의 답이 맞다면 두 번째 문항은 2점, 세 번째 문항은 3점, …, K번째 문항은 K점으로 산정한다.

잘못된 질문은 0점으로 계산됩니다.

예를 들어 아래 10개의 OX 문제에서 정답을 1로 표시하고 오답을 0으로 표시하면 아래 표와 같이 점수가 계산되어 총점은 1+1+2 + 3+1+가 됩니다.

2 = 10포인트.

점수

하나 0 하나 하나 하나 0 0 하나 하나 0
하나 0 하나 2 0 0 하나 2 0

시험 문제의 채점된 결과를 기반으로 총점을 계산하는 프로그램을 작성하십시오.

기입

작업 수 N(1 ≤ N ≤ 100)은 첫 번째 줄에 표시됩니다.

두 번째 줄에는 N개 문제의 점수를 나타내는 0 또는 1이 사이에 공백을 두고 표시됩니다.

0은 질문에 대한 답이 틀렸을 때이고 1은 질문에 대한 답이 맞을 때입니다.

누르다

첫 번째 줄은 입력에 지정된 평가 결과에 대해 추가 점수를 고려한 총 점수를 반환합니다.

A: 배열을 생성하여 저장한 후 패턴 변수를 이용하여 패턴을 생성합니다.

첫 번째 파일 이름부터 시작하여
각 문자열의 i번째 문자를 비교하여 패턴을 만듭니다.


String에서 문자열을 하나씩 가져와 쓸 수 있는 chatAt() 메서드를 통해 i번째 문자열을 가져옵니다.


모든 문자열을 비교합니다.

pattern의 문자열과 filename(j)의 문자열이 i번째 문자에서 다른 경우
패턴을 ?로 변경합니다.

import java.util.Scanner;

public class Main {
    public static void main(String() args) {
        Scanner sc = new Scanner(System.in);  // Scanner를 이용하여 입력값을 받음
        int n = sc.nextInt();  // 파일 개수 입력
        String() filenames = new String(n);  // 파일 이름들을 저장할 문자열 배열 생성

        // n개의 파일 이름을 입력받아 배열에 저장
        for (int i = 0; i < n; i++) {
            filenames(i) = sc.next();
        }

        String pattern = filenames(0);  // 첫 번째 파일 이름으로부터 시작하여 패턴 만듦
        int len = pattern.length();  // 문자열 길이 구하기

        // 각 문자열의 i번째 문자를 비교하여 패턴 만들기
        for (int i = 0; i < len; i++) {
            for (int j = 1; j < n; j++) {
                if (pattern.charAt(i) !
= filenames(j).charAt(i)) { // 문자열 i번째 위치의 문자를 "?"로 바꾸기 pattern = pattern.substring(0, i) + "?" + pattern.substring(i + 1); break; } } } System.out.println(pattern); // 패턴 출력 sc.close(); // Scanner 종료 } }