본문 바로가기
문제풀이/프로그래머스

이상한 문자열 만들기

by dev_kong 2021. 11. 23.
728x90
728x90

문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

입출력 예

 

"try hello world" "TrY HeLlO WoRlD"

 

접근방법

split 으로 풀고!

map으로 for문 돌려서..

if....? 음 뭐더라..?

어... 이게 어떻게 되는거지...?

 

const a = 'try hello world';
function solution(s) {
  const arr = s.split(' ');
  let changedString = [];
  arr.map((val) => {
    for (i = 0; i < val.length; i++) {
      if (i % 2 === 0) {
        changedString.push(val[i].toUpperCase());
      } else {
        changedString.push(val[i].toLowerCase());
      }
    }
  });
  return changedString.join('');
}

console.log(solution(a));

 

 

여기서 길 잃어버림.

왜 map을 돌리는데 push로 새로 처 집어넣고 있는걸까...

한숨 돌리고 보면 보이는데

저땐 진짜 안보였음..ㅎ

map을 이상하게 써서 길을 잃은 듯 

개발자 펀치라인 지렸다.

사실 map안에 callbackfunction 저렇게 길게 집어 넣은게 처음이라

헷갈렸던거 같음..

const a = 'try hello world';
function solution(s) {
  const arr = s.split(' ');
  let answer = arr.map((val) => {
    let changedString = '';
    for (i = 0; i < val.length; i++) {
      changedString +=
        i % 2 === 0 ? val[i].toUpperCase() : val[i].toLowerCase();
    }
    return changedString;
  });
  return answer.join(' ');
}

console.log(solution(a));  //TrY HeLlO WoRlD

 

우리집 시니어 개발자가 도와줘서 코드 정리 할 수 있었다.

뭐 아쉽게 못풀긴 했지만, 

접근 방법은 맞았으니까 나름 만족..은 개뿔

기분 나쁨...

 

function toWeirdCase(s){
  return s.toUpperCase().replace(/(\w)(\w)/g, function(a){return a[0].toUpperCase()+a[1].toLowerCase();})
}

 

 

딴사람 답인데

저 이모티콘 처럼 생긴게

정규표현식이란다

공부할게 또 늘었다

씹....

728x90
728x90

'문제풀이 > 프로그래머스' 카테고리의 다른 글

문자열 다루기 기본  (0) 2021.11.24
자릿수 더하기  (0) 2021.11.24
자연수 뒤집어 배열로 만들기  (0) 2021.11.23
문자열 내림차순으로 배치하기  (0) 2021.11.22
정수 내림차순으로 배치하기  (0) 2021.11.22

댓글