※ 알고리즘 코딩 테스트 문제의 입출력 형식
· 알고리즘 문제에서는 입출력 양식이 주어짐
→ 첫 번째 단계는 데이터를 입력받거나 생성하는 것
→ 적절한 알고리즘을 사용하여 정확한 형식으로 정답 출력
1. 주사위 세 개
· 1~6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.
· 3개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램을 작성 하시오.
ⓐ 같은 눈이 3개가 나오는 경우: 상금 = 10,000원 + (같은 눈) × 1,000원
ⓑ 같은 눈이 2개만 나오는 경우: 상금 = 1,000원 + (같은 눈) × 100원
ⓒ 모두 다른 눈이 나오는 경우: 상금 = (그 중 가장 큰 눈) × 100원

· 입력: 첫 번째 행에 3개의 눈이 공백을 두고 주어진다.
· 출력: 첫 번째 행에 게임의 상금을 출력한다.
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
26
27
28
29
30
31
32
33
|
let fs = require('fs');
let input = fs.readFileSync('input_07.txt')
.toString().split('\n');
let dice = input[0].split(' ').map(Number);
// 가장 큰 수 구하기
let maxNumber = Math.max(...dice);
// 중복 수의 갯수
let sameNumCount = 0;
// 중복 주사위 값
let sameNumber = 0;
// 지급 상금 변수
let money = 0;
for(let i=0; i<dice.length-1; i++){
for(let j=i+1; j<dice.length; j++){
if(dice[i] == dice[j]){
sameNumCount++;
sameNumber = dice[i];
}
}
}
// 중복에 따른 보상 금액 구하기
if(sameNumCount >= 2){ // 3개 중복인 경우
money = 10000 + (sameNumber * 1000);
}else if(sameNumCount == 1){ // 2개 중복인 경우
money = 1000 + (sameNumber * 100);
}else{ // 모두 다른 경우
money = maxNumber * 100;
}
console.log(money);
|
cs |
2. 평균 비교
· 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 그들에게 슬픈 진실을 알려줘야 한다.

· 입력: 첫 번째 행에는 테스트 케이스의 개수 C가 주어진다.
두 번째 행부터 각 케이스마다 학생의 수 N이 첫 수로 주어지고,
이어서 N명의 점수가 주어진다.
· 출력: 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을
반올림하여 소수점 셋째 자리까지 출력한다.
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
|
let fs = require('fs');
let input = fs.readFileSync('input_12.txt')
.toString().split('\n');
// 총 몇 행인지 가져오기
let rowCount = Number(input[0]);
for(let i=1; i<=rowCount; i++){
// 행마다 총 점수 합산
let data = input[i].split(' ').map(Number);
let dataSize = data[0];
let sum = 0;
for(let j=1; j<=dataSize; j++){
sum += data[j];
}
//평균과 비교
let avg = sum/dataSize;
let count = 0;
for(let k=1; k<=dataSize; k++){
if(data[k]>avg){
count++;
}
}
console.log(((count/dataSize)*100).toFixed(3) + '%');
}
|
cs |
3. 문자열 반복
· 문자열 S를 입력받은 후, 각 문자를 R번 반복해 새 문자열을 출력하는 프로그램을 작성하시오.

· 입력: 첫 번째 행에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다.
각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8)과 문자열 S가 주어진다.
· 출력: 각 테스트 케이스에 대해 새 문자열을 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
let fs = require('fs');
let input = fs.readFileSync('input_14.txt')
.toString().split('\n');
let rowCount = Number(input[0]);
let result = '';
for(let i=1; i<=rowCount; i++){
let [size, str] = input[i].split(' ');
for(let j=0; j<=size; j++){
result = result + str.charAt(j).repeat(size);
}
console.log(result);
}
|
cs |
4. MBTI 페이지 배포
※ github과 netlify를 통해 웹사이트 배포
1) git이란?
· 형상 관리 도구 중 하나로, 버전 관리 시스템이라고도 한다.
· 여러 명의 개발자가 프로젝트에 참여할 때, 소스 코드를 효과적으로 관리할 수 있게 해주는 공개 소프트웨어
· Repositories: 저장소, 데이터를 업로드하는 공간으로 히스토리, 태그, 소스 등 버전을 저장
2) git 실습_Repositories 생성
· git 회원가입 및 로그인 → [Repositories] → [New repository] → Repository name: mbti_page 입력
→ Add a README file 체크하여 README.md 파일도 함께 생성 → Creat repository
※ README.md 파일의 역할: 레포지토리의 설명과 문서를 담는 텍스트 파일, 마크다운 문법으로 작성

3) git 실습_파일 업로드
· 해당 Repository 접속 → + 버튼 → [Upload files] → 업로드하고자 하는 파일 선택 → Commit changes: 정보 입력
→ Commit changes

4) git 실습_Branch 설정
· 해당 Repository 접속 → [Settings] → [Pages] → Branch: main으로 변경 후 Save

5) netlify에도 동시 배포하는 방법
· github 계정으로 회원가입 및 로그인 → Add new site: Import an existing project 선택 → 다음 페이지로
이동되면 GitHub 선택 → git 계정에 있는 Repository 정보를 로딩 → 연동하고자 하는 프로젝트 선택

· Site name: mbti109 → Check availability 체크 → Base directory: / → Deploy mbti 클릭 → View site deploy

6) 배포 후 정상인지 체크!
MBTI Test
yeanhee129.github.io
'GSITM_하이미디어 > JavaScript&Jquery' 카테고리의 다른 글
코딩 테스트(JS)_정렬과 알고리즘, 탐색 (0) | 2024.08.20 |
---|---|
코딩 테스트(JS)_정렬 (0) | 2024.08.19 |
코딩 테스트(JS)와 MBTI 페이지 제작 #2 (0) | 2024.08.14 |
코딩 테스트(JS)와 MBTI 페이지 제작 #1 (0) | 2024.08.13 |
JavaScript와 연습문제 (0) | 2024.08.09 |