ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 230221 TIL
    TIL 2023. 2. 21. 11:01

    오늘 정말 오랜만에 알고리즘 문제를 건들여봤다

     

    js로 푸는건 처음이기도 하고 코테는 오랜만이니

    긴장도 풀겸 제일 쉬운 0단계 입문부터 다시 시작하기로 함


     

    프로그래머스 0단계 문제: 옹알이 (1)

    더보기

    문제 설명

    머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.


    제한사항
    • 1 ≤ babbling의 길이 ≤ 100
    • 1 ≤ babbling[i]의 길이 ≤ 15
    • babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.
      • 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.
    • 문자열은 알파벳 소문자로만 이루어져 있습니다.

    입출력 예babblingresult
    ["aya", "yee", "u", "maa", "wyeoo"] 1
    ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] 3

    입출력 예 설명

    입출력 예 #1

    • ["aya", "yee", "u", "maa", "wyeoo"]에서 발음할 수 있는 것은 "aya"뿐입니다. 따라서 1을 return합니다.

    입출력 예 #2

    • ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]에서 발음할 수 있는 것은 "aya" + "ye" = "ayaye", "ye", "ye" + "ma" + "woo" = "yemawoo"로 3개입니다. 따라서 3을 return합니다.

    유의사항
    • 네 가지를 붙여 만들 수 있는 발음 이외에는 어떤 발음도 할 수 없는 것으로 규정합니다. 예를 들어 "woowo"는 "woo"는 발음할 수 있지만 "wo"를 발음할 수 없기 때문에 할 수 없는 발음입니다.

    ※ 공지 - 2022년 10월 27일 문제 지문이 리뉴얼되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.

     

     

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

     

     

     

    내 답안코드

    babbling배열을 돌며 옹알이 단어를 전부 "1"로 치환해서

    babbling[i]가 옹알이가 가능하면 문자열을 "1111" 이런식으로 바꾸고 temp 변수에 할당

    옹알이가 불가능할 땐 "11a" 이런식으로 바뀌기 때문에 정수가 될 수 없음

    temp가 정수가 가능한지 문자열인지 판별해서 answer를 하나씩 늘리는 식으로 구현햇따

     

    그리고 테스트케이스 정확도가 하나 떨어졌다

    효율성테스트는 없는것으로 보아 속도 문제는 아닌거같따

     

     

    isNaN의 false 범위가 너무 관대해서 오류가 나는가 싶어

    temp를 정수로 형변환하고 Number.isInteger()를 써봄

     

    근데 왠걸 parseInt(temp)를 콘솔로그로 찍어보니

    "1a" 이런것도 parseInt를 맥이면 1로 깔끔하게 정수로 맨들어주는게 아니겠는가

     

    js는 parseInt가 너무 스마트해서 사용이 불가했음

     

     

     

    그래서 예전에 배웠던 연산식으로 형변환을 하고 isInteger로 맥이니 의도한대로 잘 됨.

    근데 마지막 테스트케이스는 또 실패함

     

    내 알고리즘에 문제가 있는 것 같다는 생각이 들었다
    푸는 방식을 바꾸면 되지만 오기가생겨서 이걸 해결하고 싶어짐
    일단 오늘은 아무리 생각해도 왜 틀리는지 모르겠으니 내일 풀어보자...

     

    'TIL' 카테고리의 다른 글

    230301 TIL  (1) 2023.03.02
    230227 TIL  (0) 2023.02.27
    230208 TIL  (0) 2023.02.08
    230206 TIL  (0) 2023.02.07
    230204 TIL  (0) 2023.02.04
Designed by Tistory.