[프로그래머스/C++ 문제 풀이] Lv. 0 - [PCCE 기출문제] 6번 / 가채점

2024. 7. 2. 15:12·코딩테스트/프로그래머스 (Lv. 0)
728x90
반응형

문제 설명

A반 학생들은 시험이 끝난 뒤 성적이 나오기 전 자기 시험지를 가채점해 보았습니다. 이후에 선생님이 실제 성적을 불러 줄 때 가채점한 점수와 실제 성적이 다른 학생들이 있어 선생님께 문의를 하려고 합니다.

성적을 문의하려는 학생들의 번호가 담긴 정수 리스트 numbers와 가채점한 점수가 성적을 문의하려는 학생 순서대로 담긴 정수 리스트 our_score, 실제 성적이 번호 순서대로 담긴 정수 리스트 score_list가 주어집니다. 주어진 solution 함수는 가채점한 점수가 실제 성적과 동일하다면 "Same"을, 다르다면 "Different"를 순서대로 리스트에 담아 return하는 함수입니다. solution 함수가 올바르게 작동하도록 한 줄을 수정해 주세요.

제한 사항

  • 1 ≤ numbers의 길이 = our_score의 길이 ≤ 10
    • 1 ≤ numbers의 원소 ≤ 31
    • 0 ≤ our_score의 원소 ≤ 100
    • our_score[i]는 numbers[i]번 학생이 가채점한 점수입니다.
    • numbers는 중복된 원소를 가지지 않습니다.
  • 2 ≤ score_list의 길이 ≤ 31
    • 0 ≤ score_list의 원소 ≤ 100
    • score_list에는 실제 성적이 [1번 학생 성적, 2번 학생 성적, 3번 학생 성적 …] 순서로 들어있습니다.

입출력 예

numbers our_score score_list result
[1] [100] [100, 80, 90, 84, 20] ["Same"]
[3, 4] [85, 93] [85, 92, 38, 93, 48, 85, 92, 56] ["Different", "Same"]

 

입출력 예 #1

  • 1번 학생이 가채점한 성적은 100점으로 실제 성적과 같기 때문에 "Same"을 담아 return합니다.

입출력 예 #2

  • 3번 학생이 가채점한 성적은 85점으로 실제 성적 38점과 다르기 때문에 "Different"를, 4번 학생이 채점한 성적은 93점으로 실제 성적과 같기 때문에 "Same"을 담아 return합니다.

문제 풀이

이번 문제는 주어진 our_score 배열의 특정 인덱스와 score_list의 특정 인덱스를 비교하는 문제입니다.

문제 자체는 어렵지 않으나 저는 문제가 요구하는 사항을 이해하는 것이 조금 버거웠기에 간단히 정리해보겠습니다.

 

우선 numbers에는 학생들의 번호가 담겨있으며, our_score에는 학생들의 번호 순서대로 성적값이 저장되어 있습니다.

즉, 문제가 요구하는 것은 our_score에 저장된 학생들의 성적값이 score_list의 학생 번호에 해당하는 성적과 동일한지를 체크하는 것입니다.

 

문제에서는 1줄만 변경이 가능하다고 하였으므로, for문 내부의 Same / Different를 구분하기 위한 if문의 조건절이 문제라는 점을 알 수 있습니다.

 

문제에서 주어진 조건문은 다음과 같습니다.

if (our_score[i] == score_list[i])

 

여기서 생각해봐야 할 점은 our_score에 저장된 학생의 성적은 score_list의 numbers에 저장된 학생 번호의 성적과 비교 해야한다는 점입니다.

 

numbers배열에 들어갈 수 있는 학생 번호의 최소값은 1이므로 실제 인덱스에 사용하기 위해 -1을 해줘야 합니다.

 

즉, our_score[i]에 저장된 성적은 score_list[numbers[i] - 1]에 저장된 성적과 동일해야 하므로 해당 부분을 수정해주면 간단히 해결되는 문제였습니다.

정답 코드

더보기
#include <string>
#include <vector>

using namespace std;

vector<string> solution(vector<int> numbers, vector<int> our_score, vector<int> score_list) {
    int num_student = numbers.size();
    vector<string> answer(num_student);

    for (int i = 0; i < num_student; i++) {
        if (our_score[i] == score_list[numbers[i] - 1]) {
            answer[i] = "Same";
        }
        else {
            answer[i] = "Different";
        }
    }

    return answer;
}
728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > 프로그래머스 (Lv. 0)' 카테고리의 다른 글

[프로그래머스/C++ 문제 풀이] Lv. 0 - 저주의 숫자 3  (0) 2024.07.03
[프로그래머스/C++ 문제 풀이] Lv. 0 - 특이한 정렬  (0) 2024.07.02
[프로그래머스/C++ 문제 풀이] Lv. 0 - 문자열 밀기  (0) 2024.07.02
[프로그래머스/C++ 문제 풀이] Lv. 0 - 다항식 더하기  (0) 2024.07.01
[프로그래머스/C++ 문제 풀이] Lv. 0 - 배열 만들기 2  (0) 2024.07.01
'코딩테스트/프로그래머스 (Lv. 0)' 카테고리의 다른 글
  • [프로그래머스/C++ 문제 풀이] Lv. 0 - 저주의 숫자 3
  • [프로그래머스/C++ 문제 풀이] Lv. 0 - 특이한 정렬
  • [프로그래머스/C++ 문제 풀이] Lv. 0 - 문자열 밀기
  • [프로그래머스/C++ 문제 풀이] Lv. 0 - 다항식 더하기
리태s
리태s
게임 클라이언트 프로그래머 직무를 준비하며 공부한 내용을 정리한 블로그입니다.
    반응형
    250x250
  • 리태s
    LeeTaes 공부노트
    리태s
  • 전체
    오늘
    어제
    • Home (165)
      • 프로젝트 (20)
        • Isaac 3D (5)
        • TimelessAdventure (13)
        • FruitsPuzzle (2)
      • Game Programming (25)
        • C# (8)
        • Unity Engine (6)
        • Unreal Engine (8)
        • UE_Multiplayer (3)
      • 코딩테스트 (111)
        • 프로그래머스 (Lv. 0) (27)
        • 프로그래머스 (Lv. 1) (31)
        • 프로그래머스 (Lv. 2) (21)
        • 백준 (Study) (29)
        • 알고리즘 (3)
      • CS지식 (7)
        • 운영체제 (7)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    2018 kakao
    unity
    Algorithm
    sesac
    CS지식
    2022 kakao
    timelessadventure
    후기
    백준
    project t.a develop
    dataasset
    Unreal Engine
    2019 kakao
    코딩테스트
    C++
    프로젝트
    fruitspuzzle
    청년취업사관학교
    tsoftobjectptr
    c#
    구현
    unrealengine
    delegate
    Summer/Winter Coding
    프로그래머스
    ai controller
    fsoftobjectpath
    issac3d
    pcce 기출문제
    프로세스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
리태s
[프로그래머스/C++ 문제 풀이] Lv. 0 - [PCCE 기출문제] 6번 / 가채점
상단으로

티스토리툴바