프로그래머스 Level1 '숫자 문자열과 영단어'

sanha_OvO·2021년 11월 24일
0

Algorithm

목록 보기
81/84

문제

프로그래머스 1단계


풀이

2021 카카오 채용형 인턴쉽 선발 문제.

해시알고리즘을 통해 특정 문자열이 나오면 해당하는 숫자를 정답문자열에 넣는 형식으로
알고리즘을 짰다.


Python 코드

def solution(s):
  answer = ''
  temp = ''         # 영단어 저장을 위한 
  dict = {          # 해시알고리즘을 위한 딕셔너리 선언
    'zero':'0',
    'one':'1',
    'two':'2',
    'three':'3',
    'four':'4',
    'five':'5',
    'six':'6',
    'seven':'7',
    'eight':'8',
    'nine':'9'
  }
    
  for i in s: 
    if i in '0123456789':     # 숫자가 나오면 정답에 바로 넣어줌
      answer += i
    else:
      temp += i
      
    if temp in dict:          # 쌓여있는 문자열이 dict 안에 있는 경우
      answer += dict[temp]    # 그에 해당하는 숫자 정답에 넣고 temp 초기화
      temp=''
    
  return int(answer)

JavaScript 코드

const solution = (s) => {
  let answer = "";
  let temp = "";
  const dict = {
    zero: "0",
    one: "1",
    two: "2",
    three: "3",
    four: "4",
    five: "5",
    six: "6",
    seven: "7",
    eight: "8",
    nine: "9",
  };

  for (let x of s) {
    if ("0123456789".includes(x)) {
      answer += x;
    } else {
      temp += x;
    }
    if (temp in dict) {
      answer += dict[temp];
      temp = "";
    }
  }
  return Number(answer);
};
profile
Web Developer / Composer

0개의 댓글