문제27 : 객체 만들기
첫번째 입력에서는 학생의 이름이 공백으로 구분되어 입력되고,
두번째에는 그 학생의 수학 점수가 공백으로 구분되어 주어집니다.
두 개를 합쳐 학생의 이름이 key이고 value가 수학 점수인 객체를 출력해주세요.
/*
입력
Yujin Hyewon
70 100
출력
{'Yujin': 70, 'Hyewon': 100}
*/
// const keys = ["지디","지팍"];
// const values = ["90","10"];
const keys = prompt('이름을 입력하세요!').split(" ");
const values = prompt('점수를 입력하세요!').split(" ");
let obj = {};
for(let i=0; i<keys.length;i++){
obj[keys[i]] = values[i];
}
console.log(obj); // { '지디': '90', '지팍': '10' }
* 객체를 만드는 방법을 꼭 짚고 넘어가야 한다.
for(let i=0; i<keys.length;i++){
obj[key[i]] = values[i];
}
obj[keys[i]] = values[i];: keys 배열의 i번째 요소를 obj 객체의 키로 사용하고, values 배열의 i번째 요소를 해당 키의 값으로 할당합니다.
결과적으로 obj 객체는 입력받은 이름과 점수를 키-값 쌍으로 가지게 된다.
문제28 : 2-gram
2-gram이란 문자열에서 2개의 연속된 요소를 출력하는 방법입니다.
예를 들어 'Javascript'를 2-gram으로
반복해 본다면 다음과 같은 결과가 나옵니다.
입력으로 문자열이 주어지면 2-gram으로
출력하는 프로그램을 작성해 주세요.
/**
* 입력
Javascript
출력
J a
a v
v a
a s
s c
c r
r i
i p
p t
*
*
*/
const word = "JavaScript";
for(let i=0; i < word.length-1; i++) {
console.log(word[i], word[i+1]);
}
문제29 : 대문자만 지나가세요
진구는 영어 학원 아르바이트를 하고 있습니다.
반 아이들은 알파벳을 공부하는 학생들인데 오늘은 대문자 쓰기 시험을 봤습니다.
알파벳 하나만을 입력하고 그 알파벳이
대문자이면 YES를 아니면 NO를 출력하는 프로그램을 만들어 주세요.
const word = prompt();
if(word === word.toUpperCase()){
console.log("YES");
} else {
console.log("NO");
}
-> 위에 답은 동영상 강의에서 제시한 답
코드를 좀 더 보강하면, 입력값이 숫자일 경우 YES로 출력된다. 이를 보완한 코드를 작성해 보았다.
const txtInput = prompt('알파벳 입력');
//대문자 소문자에 관련된 메서드 toUpperCase(), toLowerCase()
if(txtInput && /^[a-zA-Z]+$/.test(txtInput) && txtInput === txtInput.toUpperCase()){
console.log("YES");
} else {
console.log("NO");
}
✅ 코드 설명
- word &&
- 사용자가 입력을 안 했을 경우(null이나 ""), 오류 방지
- /^[a-zA-Z]+$/
- 정규표현식(Regex) 사용
- 오직 알파벳(a
z, AZ)만 포함된 경우만 검사 - 숫자나 특수문자가 포함되면 false 반환
- word === word.toUpperCase()
- 입력값이 모두 대문자인 경우 "YES" 출력
🔹 실행 예시
입력값 | 출력값 |
HELLO | YES |
Hello | NO |
12345 | NO |
HELLO123 | NO |
!@#ABC | NO |
이제 숫자나 특수문자가 포함되면 "NO"가 나오도록 보완! 😊
😊 정규식(Regex)을 사용해서 입력값이 알파벳(az, AZ)만 포함되는지 검사
🔍 정규식 /^[a-zA-Z]+$/ 설명
- ^ → 문자열의 시작을 의미
- [a-zA-Z] → **소문자(a-z) 또는 대문자(A-Z)**만 허용
- + → 최소 한 글자 이상 있어야 함
- $ → 문자열의 끝을 의미
📌 즉, 알파벳으로만 이루어진 문자열인지 검사하는 정규식!
숫자나 특수문자가 포함되면 false로 출력됨
'JavaScript' 카테고리의 다른 글
[JS] 코딩테스트 031 - 내장함수의 시간 복잡도 (0) | 2025.02.17 |
---|---|
[JS] 코딩테스트 030 - indexOf... 문자열 속 문자 찾기 메서드 (0) | 2025.02.17 |
[JS] 코딩테스트 022~026 - 대문자, 소문자 변환 (0) | 2025.02.17 |
[JS] 코딩테스트 021 - new Set() (0) | 2025.02.16 |
[JS] 코딩테스트 019~020 - 제곱근,거듭제곱 Math.pow() (0) | 2025.02.16 |