gurwhddl
코알못 공부블로그
gurwhddl
전체 방문자
오늘
어제
  • 분류 전체보기
    • CSS
    • JS
    • node.JS
    • REACT
    • 코딩테스트 연습

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
gurwhddl

코알못 공부블로그

코테연습 - 숫자 짝꿍
node.JS

코테연습 - 숫자 짝꿍

2023. 2. 12. 21:40

'3415' '1425' 라는 두 수(문자열)에서 공통으로 나타나는 정수를 이용해서 만들 수 있는 가장 큰 수를 만들어서 문자열로 return하는 문제

어려운 점은 3 ≤ X, Y의 길이(자릿수) ≤ 3,000,000 이라서 for문 중첩 - 이런거하면 절대 안풀림

또 배열로 바꾸거나 문자열을 형변환하고 하면 안풀린다고함 (이것까진 생각도 못했는데...)

 

 

  • 일단 indexOf , includes  , replace 이런 메서드들은 시간복잡도가 오지게 높아서 이걸 쓰면 좀 안풀리는거 같음
  • 그래서 그냥 X에서 for of문으로 0~9까지 숫자가 몇개가 있는지를 찾아서 배열에 index순으로 넣음(4면 arr[4]에 1++하는 식으로)
  • 그리고 중첩 안시키고 따로 for of문으로 4면 arr[4]의 값이 1 이상이다 ? 중복이라는 소리 - twins라는 빈 배열에 넣고
  • X에선 4가 한개 있고, Y에서는 4가 2개 있는 경우도 있기 때문에 중첩됐으면 -1을 해줌
  • 그 이후로는 그냥 내림차순해서 하나씩 붙여서 문자열로 리턴해주면 되는데 - 지금 생각난건데 그냥 join 해주면 됐을듯. 왜 통과된거지
  • 여기서 짝꿍이 없으면 ? '-1'을 리턴하고 짝꿍이 다 0이면 ? '0'을 리턴해야되는데 이게 은근 헷갈렸는데 다른사람들 풀이 보니까 다들 비슷하게 한듯?
  •  팁)문자열에 + 붙이면 숫자됨 - map((i) => +i) 이런거 해주면 전체 문자열 배열 다 숫자로 바꿀 수 있음

'node.JS' 카테고리의 다른 글

백준 9012. 스택 구현  (0) 2023.02.27
express 용어 정리  (0) 2023.02.27
commonJs모듈  (0) 2023.02.15
코테연습 - 햄버거 만들기  (0) 2023.02.07
API  (0) 2023.01.13
    'node.JS' 카테고리의 다른 글
    • express 용어 정리
    • commonJs모듈
    • 코테연습 - 햄버거 만들기
    • API
    gurwhddl
    gurwhddl

    티스토리툴바