[알고리즘] 숫자 문자열과 영단어

2022. 4. 30. 12:36·알고리즘
반응형

문제 설명

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.

다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.

  • 1478 → "one4seveneight"
  • 234567 → "23four5six7"
  • 10203 → "1zerotwozero3"

이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.

참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.


숫자 영단어
0 zero
1 one
2 two
3 three
4 four
5 five
6 six
7 seven
8 eight
9 nine

제한사항

  • 1 ≤ s의 길이 ≤ 50
  • s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.
  • return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.

입출력

s result
"one4seveneight" 1478
"23four5six7" 234567
"2three45sixseven" 234567
"123" 123

나의 풀이

const s1 = "oneoneone4seveneight";
const s2 = "23four5six7";
const s3 = "2three45sixseven";
const s4 = "123";

function solution(s) {
  var answer = s.toString();

  const word = [
    "zero",
    "one",
    "two",
    "three",
    "four",
    "five",
    "six",
    "seven",
    "eight",
    "nine",
  ];

  word.forEach((element, idx) => {
    answer = answer.split(element).join(idx);       -- 1
  });

  return parseInt(answer);
}

console.log(solution(s1));
console.log(solution(s2));
console.log(solution(s3));
console.log(solution(s4));

forEach 문으로 매칭되는 문자열을 가지고 

배열의 split을 사용해 나누고 join을 사용해 배열을 하나의 문자열로 합치고 값을 넣어주었다. 

 

자바스크립트가 아니라면 replaceAll을 사용했겠지만 다른 방식을 사용했다. 

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

반응형
저작자표시 비영리 변경금지 (새창열림)

'알고리즘' 카테고리의 다른 글

[알고리즘] 크레인 인형뽑기 게임  (2) 2022.05.06
[알고리즘] 키패드 누르기  (1) 2022.05.01
[알고리즘] 신규 아이디 추천  (1) 2022.04.27
[알고리즘] 오픈 채팅방  (2) 2022.04.26
[알고리즘] 문자열 압축  (1) 2022.04.24
'알고리즘' 카테고리의 다른 글
  • [알고리즘] 크레인 인형뽑기 게임
  • [알고리즘] 키패드 누르기
  • [알고리즘] 신규 아이디 추천
  • [알고리즘] 오픈 채팅방
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    바질
    next.js
    영어독학
    react
    webpack
    CCNA
    Node.js
    타일러영어
    리액트
    식물
    네이버 부스트캠프
    javascript
    알고리즘
    리얼클래스
    프로그래머스
    Babel
    Docker
    덤프
    ReactNative
    영어회화
    CSS
    네트워크
    자바스크립트
    다이소
    바질 키우기
    typescript
    redux
    리얼학습일기
    타입스크립트
    ChatGPT
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[알고리즘] 숫자 문자열과 영단어
상단으로

티스토리툴바