라라리라
2023.08.14 / Step 9 [문자열] - 코딩 26 일차 본문
문자열1_개념01_문자.html
<script>
/*
[개념] 문자열(= 문자 여러개)
*/
let a = "javascript"; // 큰 따옴표로 감싼다.
document.write(a + "<br>");
let b = 'javascript'; // 작은 따옴표로 감싼다.
document.write(b + "<br>");
let c = "'hello'"; // 작은 따옴표를 표시하고 싶을 때는 큰 따옴표로 감싼다.
document.write(c + "<br>");
let d = '"hello"'; // 큰 따옴표를 표시하고 싶을 때는 작은 따옴표로 감싼다.
document.write(d + "<br>");
// 더하기(+) : 더하기를 사용하면 서로 다른 문자를 연결할 수 있다.
let lastName = "홍";
let firstName = "길동";
let fullName = lastName + firstName;
document.write(fullName + "<br>");
// 문자열 초기화 : 보통 큰따옴표에 아무것도 표시하지 않고 초기화한다.
a = "";
// 문자열 길이 : 배열과 마찬가지로 length를 사용한다.
let text = "abcde";
document.write(text.length);
</script>
문자열1_개념02_형변환.html
<script>
/*
[개념] 문자열 형변환
문자열은 숫자가 아니기 때문에 산술연산을 사용할 수 없다.
문자열을 산술하기 위해서는 문자를 숫자로 변환해야 한다.
[1] 문자를 숫자로 형변환
Number(문자)
[2] 숫자를 문자로 형변환
String(숫자)
*/
let a = "10";
document.write(a + 10 + "<br>"); // 1010
a = Number(a);
document.write(a + 10 + "<br>"); // 20
let b = 10;
b = String(b);
document.write(b + 10); // 1010
</script>
문자열1_개념03_인덱싱.html
<script>
/*
[개념] 문자열 인덱싱(indexing)
문자열도 배열과 유사하게 인덱싱이 가능하다.
대괄호와 인덱스 번호를 활용해 글자 한 개를 출력할 수 있다.
*/
let text = "abcde";
document.write(text[1] + "<br>");
/*
[문제]
text변수에서 c만빼고 출력하시오.
[정답]
abde
*/
for(let i=0; i<text.length; i++) {
if(text[i] != "c") {
document.write(text[i]);
}
}
document.write("<br>");
/*
[문제]
text변수에서 가장 마지막 글자를 출력하시오.
[정답]
e
*/
let index = text.length - 1;
document.write(text[index]);
</script>
문자열1_개념04_문자수정.html
<script>
/*
[개념] 문자열 수정 시 주의점
자바스크립트에서는 문자열을 변경할 수 없다.
처음부터 새로 변수를 만들거나
replace() 함수를 사용해야 한다.
*/
// [문제] hello에서 e를 a로 변경하시오.
// [방법1]
let text = "hello";
text[1] = "a"; // 직접 수정은 불가능하다.
document.write(text + "<br>"); // hello
let newText = "";
for(let i=0; i<text.length; i++) {
if(text[i] == "e") {
newText += "a";
} else {
newText += text[i];
}
}
document.write(newText + "<br>");
/*
[개념] 문자열 교체
let 변수 = "문자열";
변수 = 변수.replace(교체전, 교체후);
문자열의 일부를 교체할 때 사용한다.
*/
// [방법2]
text = text.replace("e", "a");
document.write(text + "<br>"); // hallo
text = "Hong's number is 010-1234-5678.";
let result = text.replace("Hong's", "Kim's");
document.write(result);
</script>
문자열1_개념05_삭제.html
<script>
/*
[문제]
stNo는 학생 번호 배열이다.
stName은 학생 이름 배열이다.
두 배열은 한 세트이다.
랜덤으로 학생 번호를 선택하고
해당 번호의 학생데이터를 삭제하시오.
[예시]
r = 1002
stNo = [1001, 1003, 1004]
stName = ["김철수", "신정아", "이영희"]
*/
let stNo = [1001, 1002, 1003, 1004];
let stName = ["김철수" , "이만수" , "신정아" , "이영희"];
let r = Math.floor(Math.random() * 4 ) + 1001;
document.write("r = " + r + "<br>");
for(let i = 0; i < stNo.length; i++){
if(stNo[i] == r){
stNo.splice(i , 1);
stName.splice(i, 1);
}
}
document.write("stNo = " + stNo + "<br>");
document.write("stName = " + stName + "<br>");
</script>
문자열1_개념06_전체합.html
<script>
/*
[문제]
아래 정보는 학생들의 데이터이다.
각 학생들의 국어점수와 영어점수의 합을
stTotal에 저장하시오.
[정답]
stTotal = [70, 100, 62, 53]
*/
let stNo = [1001, 1002, 1003, 1004];
let stName = ["김철수", "이만수", "신정아", "이영희"];
let stKor = [10, 20, 30, 40];
let stEng = [60, 80, 32, 13];
let stTotal = [];
let size = stNo.length;
for(let i=0; i<size; i++) {
let total = stKor[i] + stEng[i];
stTotal.push(total);
}
document.write(stTotal);
</script>
문자열1_개념07_비교.html
<script>
/*
[문제]
아래는 두 학생의 가위바위보 데이터이다.
철수는 몇번 승리했는지 출력하시오.
[정답]
winCount = 3
*/
let 철수 = ["가위", "바위", "바위", "보", "가위"];
let 민수 = [ "보", "가위", "바위", "가위", "보"];
let winCount = 0;
for(let i=0; i<철수.length; i++) {
if(철수[i] == 민수[i]) {
document.write("비겼다<br>");
} else if(철수[i] == "가위" && 민수[i] == "보") {
document.write("철수가 이겼다.<br>");
winCount += 1;
} else if(철수[i] == "바위" && 민수[i] == "가위") {
document.write("철수가 이겼다.<br>");
winCount += 1;
} else if(철수[i] == "보" && 민수[i] == "바위") {
document.write("철수가 이겼다.<br>");
winCount += 1;
} else {
document.write("철수가 졌다.<br>");
}
}
document.write("winCount = " + winCount);
</script>
문자열1_문제01_기본.html
<script>
/*
[문제]
문자열 hello를 olleh로 출력하시오.
[정답]
olleh
*/
let text = "hello";
for(let i = 0; i < text.length; i++){
document.write(text[text.length - i - 1]);
}
document.write("<br>");
let temp = "" //임시 문자열을 생성해서 역순으로 저장
for(let i = 0; i < text.length; i++){
temp += text[text.length - 1 - i];
}
document.write("temp = " + temp + "<br>");
for(let i = text.length - 1; i >= 0; i--){
document.write(text[i] + " ");
}
document.write("<br>");
</script>
문자열1_문제02_암호만들기.html
<script>
/*
[문제]
철수는 비밀번호는 아래와 같다.
철수는 비밀번호를 보호하기 위해 비밀번호 글자 사이사이에
알파벳을 a부터 순서대로 끼워넣었다.
철수가 만든 비밀번호를 만들어보시오.
[정답]
qawbecrd1e2f3g4h
*/
let password = "qwer1234";
let sample = "abcdefghijklmnopqrstuvwxyz";
let result = "" //빈 문자열을 생성
for(let i = 0; i < password.length; i++){
result += password[i];
result += sample[i];
}
document.write("result = " + result + "<br>");
</script>
문자열1_문제03_암호풀기.html
<script>
/*
[문제]
철수는 비밀번호는 아래와 같다.
철수는 비밀번호를 보호하기 위해 비밀번호 글자 사이사이에
알파벳을 a부터 순서대로 끼워 넣었다.
이제 철수는 원래 비밀번호로 다시 변환해야 한다.
암호화된 비밀번호를 원래대로 복구하시오.
[정답]
qwer1234
*/
let password = "qawbecrd1e2f3g4h";
for(let i = 0; i < password.length; i++){
if(i % 2 == 0){
document.write(password[i]);
}
}
document.write("<br>");
</script>
문자열1_문제04_교환.html
<script>
/*
[문제]
아래 배열은 학생들의 데이터이다.
학생 두 명의 국어 점수가 서로 바뀌어서
잘못 저장되었다.
랜덤으로 번호 두 개를 저장 후,
각 번호의 해당하는 국어점수를 교환 후 출력하시오.
[예시]
1001, 1003
stKor = [30, 20, 10, 40]
*/
let stNo = [1001, 1002, 1003, 1004];
let stName = ["김철수", "이만수", "신정아", "이영희"];
let stKor = [10, 20, 30, 40];
let stEng = [60, 80, 32, 13];
//랜덤번호 2개 생성
let r1 = Math.floor(Math.random() * stKor.length);
let r2 = Math.floor(Math.random() * stKor.length);
let temp = stKor[r1];
stKor[r1] = stKor[r2];
stKor[r2] = temp;
document.write(stKor)
</script>
문자열1_문제05_일등.html
<script>
/*
[문제]
아래 배열은 학생들의 데이터이다.
학생 두 명의 국어 점수가 서로 바뀌어서
잘못 저장되었다.
랜덤으로 번호 두 개를 저장 후,
각 번호의 해당하는 국어점수를 교환 하시오.
이후 국어점수와 영어점수의 총합이 1등인 학생의 이름을 출력하시오.
[예시]
1001, 1003
stKor = [30, 20, 10, 40]
1등 = 이만수
*/
let stNo = [1001, 1002, 1003, 1004];
let stName = ["김철수", "이만수", "신정아", "이영희"];
let stKor = [10, 20, 30, 40];
let stEng = [60, 80, 32, 13];
let r1 = Math.floor(Math.random() * stKor.length);
let r2 = Math.floor(Math.random() * stKor.length);
document.write(stNo[r1] + ", " + stNo[r2] + "<br>");
//랜덤번호 2개 생성
let temp = stKor[r1];
stKor[r1] = stKor[r2];
stKor[r2] = temp;
document.write(`stKor = [${stKor}]<br>`);
//위치변경
let max = 0;
let maxid = 0;
for(let i = 0; i < stKor.length; i++){
let sum = stKor[i] + stEng[i];
if(max < sum){
max = sum;
maxid = i;
}
}
document.write(`1등 = ${stName[maxid]}<br>`);
</script>
문자열1_문제06_밸런스게임.html
<script>
/*
[문제]
아래는 철수와 영희가 데이트 1주년을 기념하여
벨런스 게임을 하기로 했다.
선택은 전부 랜덤으로 하고
철수와 영희가 몇 개 맞았는지 출력하시오.
[예시]
[문제]양념치킨 VS 후라이드치킨
철수 = 양념치킨
영희 = 후라이드치킨
[문제]내 여친(남친)이 간첩인것을 알았다면? 신고한다 VS 신고 안한다 (단, 신고 포상금 5억)
철수 = 신고 안한다 (단, 신고 포상금 5억)
영희 = 신고 안한다 (단, 신고 포상금 5억)
...
5개 맞았다!
*/
let sample1 = [
"양념치킨",
"내 여친(남친)이 간첩인것을 알았다면? 신고한다",
"짬뽕",
"평생 겨울",
"무없이 치킨먹기",
"평생 컴퓨터없이 살기",
"겨울에 에어컨",
"아이스아메리카노"];
let sample2 = [
"후라이드치킨",
"신고 안한다 (단, 신고 포상금 5억)",
"짜장면",
"평생 여름",
"콜라없이 햄버거먹기",
"평생 핸드폰없이 살기",
"여름에 히터",
"뜨거운아메리카노"];
let 철수 = [];
let 영희 = [];
let total = 0;
for(let i = 0; i < sample1.length; i++){
let r1 = Math.floor(Math.random() * 2);
let r2 = Math.floor(Math.random() * 2);
if(r1 == r2) total++;
document.write("[문제]" + sample1[i] + " vs " + sample2[i] + "<br>");
if(r1 % 2 == 0) document.write("철수 = " + sample1[i] + "<br>");
else document.write("철수 = " + sample2[i] + "<br>");
if(r2 % 2 == 0) document.write("영희 = " + sample1[i] + "<br>");
else document.write("영희 = " + sample2[i] + "<br>");
}
document.write(`${total}개 맞았다!!<br>`);
</script>
<script>
/*
[문제]
아래는 철수와 영희가 데이트 1주년을 기념하여
벨런스 게임을 하기로 했다.
선택은 전부 랜덤으로 하고
철수와 영희가 몇 개 맞았는지 출력하시오.
[예시]
[문제]양념치킨 VS 후라이드치킨
철수 = 양념치킨
영희 = 후라이드치킨
[문제]내 여친(남친)이 간첩인것을 알았다면? 신고한다 VS 신고 안한다 (단, 신고 포상금 5억)
철수 = 신고 안한다 (단, 신고 포상금 5억)
영희 = 신고 안한다 (단, 신고 포상금 5억)
...
5개 맞았다!
*/
let sample1 = [
"양념치킨",
"내 여친(남친)이 간첩인것을 알았다면? 신고한다",
"짬뽕",
"평생 겨울",
"무없이 치킨먹기",
"평생 컴퓨터없이 살기",
"겨울에 에어컨",
"아이스아메리카노"];
let sample2 = [
"후라이드치킨",
"신고 안한다 (단, 신고 포상금 5억)",
"짜장면",
"평생 여름",
"콜라없이 햄버거먹기",
"평생 핸드폰없이 살기",
"여름에 히터",
"뜨거운아메리카노"];
let 철수 = [];
let 영희 = [];
let total = 0;
for(let i = 0; i < sample1.length; i++){
let r1 = Math.floor(Math.random() * 2);
let r2 = Math.floor(Math.random() * 2);
if(r1 == r2) total++;
document.write("[문제]" + sample1[i] + " vs " + sample2[i] + "<br>");
if(r1 % 2 == 0) document.write("철수 = " + sample1[i] + "<br>");
else document.write("철수 = " + sample2[i] + "<br>");
if(r2 % 2 == 0) document.write("영희 = " + sample1[i] + "<br>");
else document.write("영희 = " + sample2[i] + "<br>");
}
document.write(`${total}개 맞았다!!<br>`);
</script>
'코딩 > 2023 JavaScript Console' 카테고리의 다른 글
2023.08.16 / Step 9 [문자열] - 코딩 28 일차 (0) | 2023.08.16 |
---|---|
2023.08.15 / Step 9 [문자열] - 코딩 27 일차 (0) | 2023.08.15 |
2023.08.07 / Step 8 [이차배열] - 코딩 19 일차 (0) | 2023.08.07 |
2023.08.06 / Step 8 [이차배열] - 코딩 18 일차 (0) | 2023.08.06 |
2023.08.05 / Step 8 [이차배열] - 코딩 17 일차 (0) | 2023.08.05 |