코딩테스트 37

SWEA - 조교의 성적 매기기(1983)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 학기가 끝나고, 학생들의 점수로 학점을 계산중이다. 학점은 상대평가로 주어지는데, 총 10개의 평점이 있다. 학점은 학생들이 응시한 중간/기말고사 점수 결과 및 과제 점수가 반영한다. 각각 아래 비율로 반영된다. 10 개의 평점을 총점이 높은 순서대로 부여하는데, 각각의 평점은 같은 비율로 부여할 수 있다. 예를 들어, N 명의 학생이 있을 경우 N/10 명의 학생들에게 동일한 평점을 부여할 수 있다. 입력으로 각각의 학생들의 중간, 기말, 과제 점수가 주어지고, 학점을 알고싶은 K 번째 학생의 번호가 주어졌을 때, K 번째 학생의 학점을 출력하는 프로그램을..

CodingTest 2023.10.19

SWEA - 파리 퇴치(2001)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 N x N 배열 안의 숫자는 해당 영역에 존재하는 파리의 개수를 의미한다. 아래는 N=5 의 예이다. M x M 크기의 파리채를 한 번 내리쳐 최대한 많은 파리를 죽이고자 한다. 죽은 파리의 개수를 구하라! 예를 들어 M=2 일 경우 위 예제의 정답은 49마리가 된다. [제약 사항] 1. N 은 5 이상 15 이하이다. 2. M은 2 이상 N 이하이다. 3. 각 영역의 파리 갯수는 30 이하 이다. 접근방식 arr라는 빈 배열에 파리개수를 넣음 N = 5, M = 2이면 arr[0][0], arr[0][1], arr[1][0], arr[2][0]을 다 더함 ..

CodingTest 2023.10.18

SWEA - View(1206)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 강변에 빌딩들이 옆으로 빽빽하게 밀집한 지역이 있다. 이곳에서는 빌딩들이 너무 좌우로 밀집하여, 강에 대한 조망은 모든 세대에서 좋지만 왼쪽 또는 오른쪽 창문을 열었을 때 바로 앞에 옆 건물이 보이는 경우가 허다하였다. 그래서 이 지역에서는 왼쪽과 오른쪽으로 창문을 열었을 때, 양쪽 모두 거리 2 이상의 공간이 확보될 때 조망권이 확보된다고 말한다. 빌딩들에 대한 정보가 주어질 때, 조망권이 확보된 세대의 수를 반환하는 프로그램을 작성하시오. 아래와 같이 강변에 8채의 빌딩이 있을 때, 연두색으로 색칠된 여섯 세대에서는 좌우로 2칸 이상의 공백이 존재하므로 ..

CodingTest 2023.10.16

SWEA - 최빈수 구하기(1204)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 어느 고등학교에서 실시한 1000명의 수학 성적을 토대로 통계 자료를 만들려고 한다. 이때, 이 학교에서는 최빈수를 이용하여 학생들의 평균 수준을 짐작하는데, 여기서 최빈수는 특정 자료에서 가장 여러 번 나타나는 값을 의미한다. 다음과 같은 수 분포가 있으면, 10, 8, 7, 2, 2, 4, 8, 8, 8, 9, 5, 5, 3 최빈수는 8이 된다. 최빈수를 출력하는 프로그램을 작성하여라 (단, 최빈수가 여러 개 일 때에는 가장 큰 점수를 출력하라). [제약 사항] 학생의 수는 1000명이며, 각 학생의 점수는 0점 이상 100점 이하의 값이다. 접근방식 점..

CodingTest 2023.10.16

SWEA - 지그재그 숫자(1986)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 1부터 N까지의 숫자에서 홀수는 더하고 짝수는 뺐을 때 최종 누적된 값을 구해보자. [예제 풀이] N이 5일 경우, 1 – 2 + 3 – 4 + 5 = 3 N이 6일 경우, 1 – 2 + 3 – 4 + 5 – 6 = -3 접근방식 N이 입력되면 1~N까지 숫자 중 홀수는 +, 짝수는 - 처리를 하고 전부 더한 값을 출력하는 문제 1~N까지의 숫자를 arr라는 배열에 저장 arr를 돌면서 2로 나눴을 때 나머지가 0이면(짝수), ans_arr에 (해당 값-2*해당 값) 수식을 통해 해당 값에 마이너스를 붙인 값을 지정 나머지가 0이 아니면(홀수) 해당 값을 그..

CodingTest 2023.10.16

SWEA - 간단한 소인수분해(1945)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 N=2a x 3b x 5c x 7d x 11e N이 주어질 때 a, b, c, d, e 를 출력하라 접근방식 배열 num_arr = [11, 7, 5, 3, 2] 생성 배열의 각 값들이 몇 번 들어가는지 확인할 배열 ans_arr = [0, 0, 0, 0, 0] 생성 N이 주어지면 num_arr를 순회하면서 N을 각 값들로 나눴을 때 나머지가 0인지 확인 나머지가 0이 아니면 N을 구하는 데 사용되는 숫자가 아니므로 값을 0으로 설정 나머지가 0이면 while True를 통해 나머지가 0이 아닐 때 까지 ans_arr[i]에 1을 더해주고 N을 num_arr..

CodingTest 2023.10.16

SWEA - 백만장자 프로젝트(1859)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 각 날짜별로 매매가를 알고 있다고 가정 후 최대 이익을 구하는 문제 원재는 연속된 N일 동안의 물건의 매매가를 예측하여 알고 있다. 당국의 감시망에 걸리지 않기 위해 하루에 최대 1만큼 구입할 수 있다. 판매는 얼마든지 할 수 있다. 예를 들어 3일 동안의 매매가가 1, 2, 3 이라면 처음 두 날에 원료를 구매하여 마지막 날에 팔면 3의 이익을 얻을 수 있다. 접근방식 각 테스트 케이스마다 배열의 마지막부터 접근 sell 변수와 ans 변수를 0으로 설정 먼저 배열을 마지막 값을 sell 변수에 할당 배열을 돌면서 만약 sell 값이 현재 인덱스의 값보다 ..

CodingTest 2023.10.13