프로그래머스 문제 풀이

boyeonJ·2023년 8월 21일
0

알고리즘

목록 보기
15/17

외계인 사전 문제 풀이

  • array some 활용하기
  • array 내부의 string 합치기 join 함수
  • 문자열 정렬하기
    - 문자열 배열로 만들기 [...s]
    • 정렬하기 [...s].sort
    • 문자열로 만들기 [...s].sort.join('')

카카오 신입 공채 다트게임

해석: 여튼 이 코드가 문자열 처리String Manipulation를 묻는 문제입니다. 앞에서부터 한 글자씩 잘라서 처리할 수 있고, 또는 간단한 컴파일러를 만들듯이 토큰화Tokenizing와 의미 분석Semantic Analysis을 통해 어렵지 않게 계산할 수 있습니다.

이 문제에서 말하는 "간단한 컴파일러를 만들듯이 토큰화(Tokenizing)와 의미 분석(Semantic Analysis)"이란 프로그래밍 언어나 문법을 처리하는 컴파일러나 파서(Parser)의 일부 개념을 말합니다.

1. 토큰화(Tokenizing): 입력된 문자열을 작은 단위로 나누는 과정을 의미합니다. 이 작은 단위를 토큰(Token)이라고 하며, 언어에서 의미를 가지는 최소 단위입니다. 예를 들어, 주어진 문자열을 숫자, 문자(S, D, T), 옵션(*, #) 등의 토큰으로 분리하는 작업을 말합니다. 이 과정은 정규식을 사용하여 수행할 수 있습니다.
2. 의미 분석(Semantic Analysis): 토큰화된 각 토큰에 실제 의미나 처리를 연결하는 단계입니다. 언어의 문법 및 의미를 기반으로, 토큰들의 연산을 수행하거나 의미를 부여합니다. 이 문제에서는 토큰을 분석하여 어떤 숫자에 어떤 제곱 값을 적용하고, 스타상이나 아차상 옵션을 어떻게 처리할지 결정하는 단계를 의미합니다.

실제로 컴파일러나 파서는 프로그래밍 언어의 코드를 이러한 단계를 거쳐 기계가 이해할 수 있는 형태로 변환하는 역할을 합니다. 이 문제의 경우에는 컴파일러의 원리를 활용하여 문자열을 토큰화하고 의미 분석하여 점수 계산을 수행하는 것이 문제의 목적입니다.


0개의 댓글