알고리즘 공부
-
항해 99 - 자연수 뒤집기알고리즘 공부/JavaScript 문제 2023. 4. 19. 20:34
[ 문제 ] 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. n은 10,000,000,000이하인 자연수입니다. [ Input / Output 예시 ] Input Output 12345 [5,4,3,2,1] [ 풀이 ] 풀이 (1) (내 풀이 - 1) 자연수를 문자열로 만든 후, split 하고 map을 사용하여 뒤집는다. 현재 array의 값은 문자열이므로 숫자형으로 변환하는 과정을 잊지 말자. 풀이 (2) (내 풀이 - 2) 10으로 나눈 나머지를 이용한다. n을 10으로 나눈 나머지를 array에 push하고 몫을 n으로 업데이트 하면서 n이 0이 될때까지 반복한다. 풀이 (3) (프로그래머스 풀이) (1)..
-
항해 99 - 자릿수 더하기알고리즘 공부/JavaScript 문제 2023. 4. 17. 23:00
[ 문제 ] 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. N의 범위 : 100,000,000 이하의 자연수 [ Input / Output 예시 ] Input Output 123 6 987 24 [ 풀이 ] 풀이 (1) (내 풀이 - 1) 숫자로 입력받은 김에 숫자로 풀어보자는 생각이 들었다. n을 10으로 나눈 나머지가 일의 자리 숫자이므로 결과 변수에 더하고 이 때의 몫을 n으로 업데이트하는 과정을 반복했다. 이 과정을 몫이 0이 될때까지 반복한다. 아래 처럼 123 => 몫 : 12 / 나머지 : 3 12 => 몫 : 1 / 나머지 2 1 => 몫 : 0 ..
-
항해 99 - 이상한 문자 만들기알고리즘 공부/JavaScript 문제 2023. 4. 17. 22:40
[ 문제 ] 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. [ Input / Output 예시 ] Input Output "try hello world" "TrY HeLlO WoRlD" [ 풀이 ] 보자마자 내가 생각 났던 방법 그대로 표현하자면 "try hello world" ↓ split(" ") ["try", "hello", "world"] ↓..
-
항해 99 - 완주하지 못한 선수알고리즘 공부/JavaScript 문제 2023. 4. 17. 22:07
[ 문제 ] 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return ["leo", "kiki", ..
-
항해 99 - 수박수박수박수박수박수?알고리즘 공부/JavaScript 문제 2023. 4. 17. 20:26
[ 문제 ] 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. n은 길이 10,000이하인 자연수입니다. [ Input / Output 예시 ] Input Output 3 "수박수" 4 "수박수박" [ 풀이 ] 풀이 (1) (내 풀이) 메소드를 활요하는 방법이 도저히 생각이 안나서 for문을 통해 문제를 풀었다. i가 1 이상 n이하인 for문을 반복하여 i가 홀수면 '수', 짝수면 '박'을 문자열에 추가하여 반환했다. 풀이 (2) (프로그래머스 풀이) 진짜... repeat에다가 slice를 할 생각을 왜 못했을까? repeat까지만 생각하고 아.....
-
항해 99 - 문자열 다루기 기본알고리즘 공부/JavaScript 문제 2023. 4. 16. 22:25
[ 문제 ] 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. \ 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. s는 길이 1 이상, 길이 8 이하인 문자열입니다. s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다. [ Input / Output 예시 ] Input Output "a234" false "1234" true [ 풀이 ] 보자마자 이건 정규식이면 한줄로 끝낼 수 있겠다. 생각했지만 정규식을 어렵다고 생각이 들어서 뒤로 미뤘다. 우선은 2개의 조건(문자열 길이, 숫자로만 구성)을 만족시켰다고 생각했는데, 계속 틀려서 이해할 수 없었다. // 내가 짰던 기존의 코드 ..
-
항해 99 - 서울에서 김서방 찾기알고리즘 공부/JavaScript 문제 2023. 4. 16. 21:50
[ 문제 ] String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. seoul은 길이 1 이상, 1000 이하인 배열입니다. seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. "Kim"은 반드시 seoul 안에 포함되어 있습니다. [ Input / Output 예시 ] Input Output ["Jane", "Kim"] "김서방은 1에 있다" [ 풀이 ] 풀이 (1) (내 풀이) "Kim"은 오직 한 번만 나타나므로 .indexOf() 메소드를 사용하여 인덱스를 반환했다. 풀이 (2) (프로그래머스..
-
항해 99 - 문자열 내 p와 y의 개수알고리즘 공부/JavaScript 문제 2023. 4. 16. 17:03
[ 문제 ] 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. [ Input / Output 예시 ] Input Output "pPoooyY" true "Pyy" false [ 풀이 ] 풀이 (1) (내 풀이) 우선 대소문자를 구별하지 않는다고 했으므로 ..