일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 중복문자제거
- sql like연산자
- ubuntu타임존
- ...점점점문법
- 우분투 시간 변경
- 객체의 밸류값만 찾기
- @Moditying @Query
- lastIndexOf()
- 배열을 객체로
- 중복된 단어
- 제로베이스
- 단어 제거
- 배엘에서 스왑
- 문자열순서바꾸기
- 중복 문자열
- 깃 토큰 만료
- 5.3.8 Modifying Queries
- 중복단어제거
- 객체를 배열로
- indexOf()
- sql 문자열 패턴 검색
- 재귀스왑
- 코딩 어?
- 레디스 확인
- 스프링 데이타 JPA
- 문자열 중복
- 프론트엔드 스쿨
- 객체의키값만 찾기
- js 문자열을 문자배열로
- 시퀄 문법
- Today
- Total
코딩기록
항해 10일)JS - 21프로그래머스 이상한 문자 만들기 본문
답안
1번
//s = "try hello world";
function solution(s) {
var answer = s.split(" "); //split으로 공백을 기준으로 나눠서 배열에 넣는다.['try','hello','world']
let result = []; //빈 배열객체를 만들고
for(let an of answer){ // 배열 answer에 있는 값을 하나씩 가져온다.
for(let i=0; i<an.length; i++){ //for문으로 짝수일경우와 홀수일경우 돌면서 하나씩 비교한다.
if(i%2 === 0){ // 나머지가 0이면
result.push(an[i].toUpperCase()); //toUpperCase()로 짝수자리만 대문자로 바꾸고
//push()로 배열 뒤에 엘리먼트 추가한다.
}else{
result.push(an[i].toLowerCase()); // 나머지가 0이 아니면 toLowerCase로 홀수를
} // 소문자로 바꾸고 push()로 배열 맨뒤에 추가한다.
}
result.push(" "); //한 단어 끝나면 push()로 띄어쓰기 추가.
}
result.pop(); //마지막 띄어쓰기 없애고
return result.join(""); //배열 문자열로 합친다.
}
2번
function solution(s) {
// 답 저장 변수
let answer = '';
// s파라미터로 가져온 문자는 "try hello world"
// 문자를 공백을 기준으로 나눠서 배열에 담는다.
// [] [] [] 담긴 모양
// 배열로 담아서 인덱스로 홀짝을 검사하려고 한다.
let arr = s.split(' ');
for(let i = 0; i < arr.length; i++){
// [] [] [] 안에서도 ['t,' 'r', 'y']로 나눠준다.
let newarr = arr[i].split('');
// 나중에 더할 떄 try hello로 중간에 공백이 필요함으로 공백을 배열에 넣어준다.
newarr.push(' ');
// index 값을 이용하려고 reduce를 사용했다.
let prac = newarr.reduce((acc, cur, index, arr) => {
//index가 짝수면 대문자, 홀수면 소문자
if ( index % 2 === 0){
// 해당 조건에 맞는 배열의 현재 엘리먼트를 바꿔준다.
cur = cur.toUpperCase();
} else {
cur = cur.toLowerCase();
}
// 문자로 선언해놓은 answer변수에 반복적으로 넣어준다.
answer += (cur);
}, 0);
};
// 아까 공백을 추가했었는데 맨 마지막 자리는 필요없으니까 빼준다.
answer = answer.slice(0, -1);
// ""를 앞뒤로 추가해준다.
return "" + answer + "";
}
*팀원분의 답안이다
※알아야할것※
1. toUpperCase(), toLowerCase()
문자열의 알파벳 변환
> 문자열.toUpperCase() 모두 대문자 변환
> 문자열.toLowerCase() 모두 소문자 변환
2. for in문
for in문은 해당 객체의 모든 열거할 수 있는 프로퍼티(enumerable properties)를 순회할 수 있도록 해줌.
열거할 수 있는 프로퍼티란 내부적으로 enumerable 플래그가 true로 설정된 프로퍼티를 의미한다.
3. for of 문
반복할 수 있는 객체(iterable objects)를 순회할 수 있도록 해주는 반복문
JS반복할 수 있는 객체: Array, Map, Set, arguments 객체 등
for / of문은 익스플로러에서 지원하지 않음.
2. for / in문
for (변수 in 객체){
객체의 모든 열거할 수 있는 프로퍼티의 개수만큼 반복적으로 실행하고자 하는 실행문;
}
1). for/ in 문으로 객체의 프로퍼티 접근
let property = {
name = "홍길동",
age = 30
};
for ( let i in property) {
console.log(i);
};
-----------------
출력
name
age
3. for of문
1). for of문 + for of문과 for in문의 차이점
///////// for문 ////////
var arr = ['a', 'b', 'c'];
for (var i = 0; i < arr.length; i++) { // 배열 arr의 모든 요소의 인덱스를 출력함.
console.log(arr[i]);
};
----------------------------
출력
a
b
c
/////// for / in문 ///////
var arr = ['a', 'b', 'c'];
for (var index in arr) { // 위와 같은 동작을 하는 for / in 문
console.log(arr[i]); // for in문은 in 뒤에 배열이 온다.
}; //배열 요소의 인덱스값을 가져온다.
----------------------------
출력
a
b
c
/////// for of문 ///////
var num = ['a', 'b', 'c'];
for (var value of num) { // 위와 같은 동작을 하는 for of 문
console.log(value); // for of는 배열의 인덱스이 아니라 배열에 있는 '값'
}; //을 하나씩 반복해서 가져온다.
----------------------------
출력
a
b
c
*for in문은 시작과 길이를 신경쓰지 않아도 된다.
*특정 길이부터 뽑아야 한다면 for문을 쓴다.
*for와 for in은 직접 배열과 그 인덱스arr[i]를 통해 직접접근 하지만
for of는 배열에 있는 '값'을 하나씩 반복해서 가져와 변수에 복사한다.
2). for of문과 for in문의 차이점
var arr = ['a', 'b', 'c', 'd', 'e'];
for(var idx in arr) {
if(arr[idx] == 'a') {
arr[idx] = 'A';
}
}
console.log(arr);
<결과>
['A', 'b', 'c', 'd', 'e']
var arr2 = ['a', 'b', 'c', 'd', 'e'];
for(var value of arr2) {
if(value == 'a') {
value == 'A';
}
}
console.log(arr2);
<결과>
['a', 'b', 'c', 'd', 'e'];
위의 for in은 인덱스 번호를 이용해 실제 배열의 값을 바꾸기 때문에 값이 바뀐다.
하지만 for of는 배열에 담긴 값을 그저 하나씩 변수에 담는 것입니다.
value = 'a';
value = 'b';
value = 'c';
값을 바꾸어도 실제 배열의 값은 바뀌지 않는다.
참고
*알아야할것- for, for in문, for of문 차이
https://hell-world.tistory.com/11
https://yjshin.tistory.com/entry/JavaScript-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-for-%EB%AC%B8-for-in-%EB%AC%B8-for-of-%EB%AC%B8
* 객체, 인스턴스, 프로퍼티, 메소드 설명
JavaScript - 객체(Object)에 대해 알아보자 (velog.io)
*2번답안
https://kworld.tistory.com/48?category=911112
'항해99 > 챕터2 알고리즘' 카테고리의 다른 글
항해 11일) 알고리즘 테스트 (0) | 2022.01.21 |
---|---|
항해 8일)JS- 17프로그래머스- 문자열 다루기 기본 (0) | 2022.01.17 |
항해 8일)JS - 13프로그래머스 2016년 (0) | 2022.01.17 |
항해 6일)JS - 9프로그래머스 핸드폰 번호 가리기 (0) | 2022.01.15 |
항해 6일)JS - 5프로그래머스 문자열을 정수로 바꾸기 (0) | 2022.01.15 |