본문 바로가기

Algorithm/프로그래머스30

Level2. 프로그래머스 가장 큰 수 - JavaScript 처음 접근했을 때는 모든 경우의 수를 구하거나 1의 자리를 기준으로 내림차순하고 이후에 두 번째 자리를 기준으로 재정렬하는 방법을 생각했으나 numbers의 길이가 100,000이하 이고 각 원소가 1000이기에 어떻게 풀지 고민하고 있다고 다른 해설을 참조하게 되었다. 1. numbers의 각 원소를 문자로 변경한 배열을 정렬한다. 2. 정렬은 문자 b + 문자 a를 합치고 숫자형으로 바꿔준 값과 문자 a + 문자 b를 합치고 숫자형으로 바꿔서 빼준다. 여기서 마이너스 값이면 a는 앞으로 플러스 값이면 뒤로 간다. a가 6 이고 b가 10이라고 했을 때 610과 106 중에 610이 크기 때문에 a가 앞으로 이동한다. 3. numbers의 원소는 0이상으로 나와 있기 때문에 최악의 경우 numbers는.. 2020. 7. 7.
Level2. 프로그래머스 소수찾기 - JavaScript 방법 1. 1. numbers에서 만들어질 수 있는 모든 경우의 수 구하기 2. 에라토스테네스의 체에서 소수가 맞는지 확인하기 처음에는 이렇게 생각했는데 모든 경우의 수를 구하는게 쉽지 않았다. 따라서 다른 분의 방법을 참고하였다. 방법 2. 1. numbers의 수들을 내림차순으로 정렬한다 2. 에라토스테네스의 체를 확인하면서 소수인 수를 numbers와 비교한다. 좀 더 자세히 얘기하자면 방법 2 - 1 설명 numbers의 수가 "123"이라면 내림차순으로 정렬할 경우 321이 된다. 123이 가질 수 있는 모든 경우의 수 중에서 321보다 큰 경우는 없다. 다만 numbers는 0~9까지 이기 때문에 가능하다. 만약 numbers에 10이상의 수가 오게 된다고 가정하면 numbers의 수가 910.. 2020. 7. 7.