[TIL] 2022-10-13

민석·2022년 10월 13일
0

TIL

목록 보기
37/87

Fact (사실)

코드숨 공부방 예약시스템 스프린트
알고리즘문제 - 이진변환반복하기

Feeling (느낌)

코드숨 공부방 예약시스템 스프린트

기한이 내일까지마무리인데 목요일이 벌써 왔습니다
퍼블리싱과 redux작업이 거의마무리가되어 이제 api만남았는데 react-query를 처음사용해봐서 익히는시간이 좀 걸리더라구요
post 까진 성공했는데 다른분들이 맡은 get구현을 도와줬는데 방법을잘못사용한건지 api가 안되는건지 에러가 나더라구요 내일 까지 목표인데 이룰수있을까 조바심이났습니다
자기전에 react-query로 get한 예제들을 찾아보며 샘플코드를만들었는데 내일 다시 확인해보려합니다

알고리즘문제

오늘은 프로그래머스 레벨2 문제인 이진변환반복하기를 풀어봤습니다
처음 저의 계획은 이랬습니다

미지의값 :s가 1일될때까지 이진변환을 가했을때 이진변환의 횟수와 변환과정에서 제거된 모든 0의개수를 각각 배열에 담아 returngofk
    자료
        s 는 0,1로 이루어져있다
        [변환횟수 , 0제거갯수]return한다
        toString(2) 를하면 2진수로 바꿀수있다
        0을제거할개수를 찾고 그갯수를 2진수로 변환한다
        includes를 사용하면 0이 없는지 확인할수있다
        replaceAll을 사용하면 0을 제거할수있다
        match에서 /0/g 을 사용하면 0의 갯수를 알수있다

    조건

계획
    s.match(/0/g).length 를 사용하여 갯수를 구한다
    갯수.toString(2) 를 하여 2진법으로 변환하고 count= count+1 , zeroCount= zeroCount + s.match(/0/g).length를 한다
    변환한값에 includes를 이용해 0이 포함되어있다면
    위의 방법을 반복한다
    includes에 0이없다면 [ count , zeroCount ] 를 리턴한다

이렇게 계획을 세우고 풀이를했는데 제가 문제를 잘못이해한부분이 있었습니다
0을 제거하고 남은숫자갯수의 2진수를 구하며 반복하는것인데 전 0을제거한숫자로 2진수를 구하는실수를하였고

목표는 1이될때까지 이진수로 바꾸는것인데 0만없어질때까지 반복을 하는것이였습니다

이2개를 알고난뒤 다시 계획을 수정하지않고 코드로만 수정하려고해서 그런지 빨리 정리가 안되더라구요 앞으론 다시 계획을 수정해봐야겠습니다

Finding (교훈)

스프린트는 내일이면 끝인데 일정을 맞추지못할까봐 불안한 상태네요

분명 어려워할기능도아니고 머릿속으로 어떻게 구현할지 다 그려지는데 작업속도가 너무 느린거같습니다 티켓을 잘나누지못해 머지가안된 작업물을 놔두고 연결해서 하려니 시간이 딜레이가된점도 있는거같습니다
다음티켓분배시 어떻게하면 영향을 안주고 분업을 딱할수있는 티켓범위를 좀더 고민해봐야겠습니다

처음에는 프로그래머스1도 정말 어렵게다가왔는데 이젠 그래두 레벨2도 한시간안에 풀수있어서 기분이 좋습니다
전에 코딩테스트만 준비할땐 이게 느는게맞는건가 계속멈춰있는 기분이들었는데 조금씩 성장하고있는거같군요!

profile
안녕하세요 프론트엔드 개발자 양민석입니다.

0개의 댓글