⛵ 항해99/개강준비

[JavaScript 문법] 프로그래머스_3일차

hhhhy 2023. 7. 31. 19:06

 문자열 뒤집기 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120822

 

  • 나의 풀이
function solution(my_string) {
    var answer = [];
// solution(my_string)을 실행하면 answer 배열을 만듦

    for (let i = 0; i < my_string.length; i++) {
      answer.unshift(my_string[i]);
    }
// i는 0부터 시작하는데, my_string 길이(0~4)까지 실행하고, 다 돌면 1일 증가됨
// unshift를 써서 실행될때마다 배열의 맨 앞에 요소를 추가함

  return answer.join("")
}
// join을 써서 배열을 문자열로 변환

console.log(solution("jaron"))  // noraj

 

  • 알게 된 것
📍 join() 메서드
- 배열을 문자열로 변환
 
 # 예시
const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());  // "Fire,Air,Water"
console.log(elements.join(''));  // "FireAirWater"
console.log(elements.join('-'));  // "Fire-Air-Water"

# 참고
1) https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/join
2) https://inpa.tistory.com/entry/JS-%F0%9F%9A%80-%EB%B0%B0%EC%97%B4%EC%9D%84-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C-%EB%B3%80%ED%99%98%ED%95%98%EB%8A%94-3%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95


📍 전개구문(spread), reverse() 활용한 코드
function solution(my_string) {
    var answer = [...my_string].reverse().join("");
// [...my_string] 전개구문을 [] 배열에 넣고 → (['j', 'a', 'r', 'o', 'n']
// .reverse() 뒤집고 → [ 'n', 'o', 'r', 'a', 'j' ]
// 배열을 문자열로 바꿔주기 → noraj

    return answer;
}
console.log(solution("jaron"))


📍 reverse() 메서드
 - 배열의 순서를 반전
 
 # 예시
const array1 = ['one', 'two', 'three'];
console.log('array1:', array1);  // "array1:" Array ["one", "two", "three"]
const reversed = array1.reverse();
console.log('reversed:', reversed);  // "reversed:" Array ["three", "two", "one"]

 

 특정 문자 제거하기 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120826

 

  • 나의 풀이
function solution(my_string, letter) {

let str = my_string;
return str.replaceAll(letter, '');
}

console.log(solution("BCBdbe", "B"))  // Cdbe

 

  • 알게 된 것
📍 replaceAll() 메서드
- 문자열 변경하기

# 예시
'문자열'.replaceAll('찾을 문자열','바꿀 문자열')

# 참고
1) https://blogpack.tistory.com/1131
2) https://velog.io/@bami/Javascript-String.replaceAll
2) https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll


📍 replace() 메서드 활용한 코드
function solution(my_string, letter) {
let str = my_string;
return str.replace(new RegExp(letter, "g"), '');
}
console.log(solution("BCBdbe", "B"))  // Cdbe


📍 replace() 메서드에 변수 넣기
- RegExp 객체를 활용해야함
- 변수에 정규표현식 //g 을 이용하면 결과값 안나옴

# 예시
new RegExp(letter);  // 처음 나오는 letter를 찾는다
new RegExp(letter, "g");  // 모든 letter를 찾는다
new RegExp(letter, "gi");  // 대소문자 구분 없이 모든 letter를 찾는다

# 참고
https://cookinghoil.tistory.com/95


📍 정규표현식(Regular Expression)

# 참고
1) https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-%EC%A0%95%EA%B7%9C%EC%8B%9D-RegExp-%EB%88%84%EA%B5%AC%EB%82%98-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC
2) https://curryyou.tistory.com/234

 

 문자 반복 출력하기 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120825

 

  • 나의 풀이
function solution(my_string, n) {

    let word = "";
    // 빈문자열 주기
    
    for (let i = 0; i < my_string.length; i++) {
    // 1) i를 my_string의 글자수보다 작으면
    // 7) i를 1 증가시켜서 다시 돌린다
        for (let a = 0; a < n; a++) {
        // 2) 여기로 와서, a가 n보다 작으면
        // 4) a를 1 증가시키고 다시 a가 n보다 작으면
        // 6) 반복하다가 a가 n보다 크면 
            word += (my_string[i]);
            // 3) word(빈문자열)에 my_string의 i번째 글자를 넣는다
            // 5) word(빈문자열)에 my_string의 i번째 글자를 넣는다
        }
    }
    return word;
}

console.log(solution("hello", 3))

 

 편지 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120898

 

  • 나의 풀이
function solution(message) {
    return message.length * 2
}
console.log(solution("happy birthday!"))

 

  • 알게 된 것
📍 String.length : 공백도 문자열 길이에 포함

# 참고
1) https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/length
2) https://velog.io/@coolsteve/String%EC%9D%98-length-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0%EB%8A%94-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98-%EA%B3%B5%EB%B0%B1%EB%8F%84-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98-%EA%B8%B8%EC%9D%B4%EC%97%90-%ED%8F%AC%ED%95%A8-%EB%90%A0%EA%B9%8C

 

 모음 제거 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120849

 

  • 나의 풀이
function solution(my_string) {
    return my_string.replace(/[aeiou]/g, "")
}
console.log(solution("nice to meet you"))  // nc t mt y

 

  • 알게 된 것
📍 정규표현식에서 []
- 괄호안의 문자들 중 하나

# 참고
https://curryyou.tistory.com/234

 

 문자열 안에 문자열 

  • 문제 주소

https://school.programmers.co.kr/learn/courses/30/lessons/120908

 

  • 나의 풀이
function solution(str1, str2) {
    return str1.includes(str2) ? 1 : 2;
}
console.log(solution("ab6CDE443fgh22iJKlmn1o", "6CD"))  // 1

 

  • 알게 된 것
📍 includes() 메서드
- 하나의 문자열이 다른 문자열에 포함되어 있는지를 판별
- 검색 시 대소문자를 구분

# 참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/includes