[알고리즘] 3진법 뒤집기
·
알고리즘
문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 nresult n result 125 229 45 7 입출력 예 설명 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n ( 10진법 ) n ( 3진법 ) 앞뒤 반전 10진법 45 1200 0021 7 따라서 7을 return 해야 합니다. 입출력 예 #2 답을 도출하는 과정은 다음과 같습니다. n ( 10진법 ) n ( 3진법 ) 앞뒤 반전 10진법 125 11122 22111 229 따라서 229를 return 해야 합니다. 나의 풀이 fun..
[알고리즘] 폰켓몬
·
알고리즘
문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫..
[JavaScript] localeCompare
·
JavaScript
sort 로 문자열을 정렬하는 작업을 쉽게해주는 것을 알아냈다. 일반적으로 sort로 문자열을 정렬할 때는 function solution(strings, n) { return strings.sort((a, b) => { if(a[n] b[n]) { return 1; } else if (a < b) { return -1; } else { return 1 } }); } 이런식으로 계산했다. 숫자의 경우 a - b 같은 방식으로 정렬을 쉽게하였는데, 문자열에선 이런 방법이 불가능하다. 이것을 쉽게해주는 것이 localeCompare이다. string.localeCompare(compareString) 사용 방법이 아주 간단한데, string..
[알고리즘] 문자열 내 마음대로 정렬하기
·
알고리즘
문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한사항 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 string n return ["sun", "bed..
[알고리즘] 문자열 다루기 기본
·
알고리즘
문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다. 입출력 예 s result "a234" false "1234" true 나의 풀이 function solution(s) { return (s.length === 4 || s.length === 6)&& s.split("").reduce((acc,cur) => acc && !isNaN(cur),true); } isNaN(s)를 사용할 경우 "1e30"과 같은 경..
[알고리즘] 문자열 내림차순으로 배치하기
·
알고리즘
문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한사항 str은 길이 1 이상인 문자열입니다. 입출력 예 s result "Zbcdefg" "gfedcbZ" 나의 풀이 function solution(s) { return s.split("").sort().reverse().join(""); } 문자열은 sort((a,b) => b-a);가 불가능해서 고민을 좀 했다. 하지만 조건이 결국 z-aZ-a인 것을 보고 문자열을 sort 시 A-Za-z라는 것을 생각했다. 이것을 뒤집으면 원하는 결과인 z-aZ-A가 나오기 때문이다.
[알고리즘] 하샤드 수
·
알고리즘
문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한사항 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 arr return 12 true 11 false 13 false 10 true 입출력 예 설명 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모든 자릿수의 합은..
[JavaScript] &nbsp; 공백 표시가 안되는 경우
·
JavaScript
html에서 는 공백을 나타낸다. 하지만 자바스크립트에서 똑같이 를 넣으면 문자열로 출력된다. 알아보니 자바스크립트에서 공백을 넣어야하는 경우에는 유니코드 문자열을 사용해야 한다고 한다. 유니코드에서 공백은 \u00A0 이다. React에서도 변수에 \u00A0을 넣고 컴포넌트에서 출력하면 공백으로 나오니 자바스크립트에서 공백이 필요한 경우 유니코드를 사용하자!