목록밥벌이 (281)
연습장

Q . 문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 return 하는 solution 함수를 작성해 주세요. 제한사항 my_string은 영소문자로만 이루어져 있습니다. 1 ≤ my_string의 길이 ≤ 1,000 queries의 원소는 [s, e]의 형태로 0 ≤ s ≤ e = e 일때가 종료 조건이며 -> s while 문을 사용 let..

Q. 음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같은 것이 알려져 있습니다. 이 사실을 이용하여 음이 아닌 정수가 문자열 number로 주어질 때, 이 정수를 9로 나눈 나머지를 return 하는 solution 함수를 작성해주세요. 제한사항 1 ≤ number의 길이 ≤ 100,000 number의 원소는 숫자로만 이루어져 있습니다. number는 정수 0이 아니라면 숫자 '0'으로 시작하지 않습니다. 문제에서 준 방법은 : 각 자리 숫자의 합을 9로 나눈 나머지 문자열 number 에 대해서 spread operator 로 배열로 바꾼뒤 각각의 문자들을 숫자로 바꿔서 sum 에 누적시킨다. function solution(number) { let sum ..

Q. 문자열 my_string과 정수 배열 index_list가 매개변수로 주어집니다. my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ my_string의 길이 ≤ 1,000 my_string의 원소는 영소문자로 이루어져 있습니다. 1 ≤ index_list의 길이 ≤ 1,000 0 ≤ index_list의 원소 { return (my_string[x])}).join('') //return index_list.map((x) => (my_string[x])).join('') } return 을 생략하려면 {} 도 같이 생략해야됨

Q . 1부터 6까지 숫자가 적힌 주사위가 네 개 있습니다. 네 주사위를 굴렸을 때 나온 숫자에 따라 다음과 같은 점수를 얻습니다. 네 주사위에서 나온 숫자가 모두 p로 같다면 1111 × p점을 얻습니다. 세 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻습니다. 주사위가 두 개씩 같은 값이 나오고, 나온 숫자를 각각 p, q(p ≠ q)라고 한다면 (p + q) × |p - q|점을 얻습니다. 어느 두 주사위에서 나온 숫자가 p로 같고 나머지 두 주사위에서 나온 숫자가 각각 p와 다른 q, r(q ≠ r)이라면 q × r점을 얻습니다. 네 주사위에 적힌 숫자가 모두 다르다면 나온 숫자 중 가장 작은 숫자 만큼의 점수를 얻습니다..

Q. boolean 변수 x1, x2, x3, x4가 매개변수로 주어질 때, 다음의 식의 true/false를 return 하는 solution 함수를 작성해 주세요. (x1 ∨ x2) ∧ (x3 ∨ x4) 무슨말인가 싶은데 진리표를 보면 알수있다. x ∨ y 에 대해서 4가지 경우 T T T F 를 받는데 공통점을 보면 T 가 다 들어간다. 마치 or 연산자와 같다. x ∧ y 에 대해서 4가지 경우 T F F F 를 받는데 F 를 받은 항목은 모두 F 가 들어간다. 마치 and 연산자와 같다. 따라서 우리는 (x1 ∨ x2) ∧ (x3 ∨ x4) 를 (x1 or x2) and ( x3 or x4 ) 라고 생각 할 수있다. function solution(x1, x2, x3, x4) { return (..

Q. 정수 배열 arr가 주어집니다. arr를 이용해 새로운 배열 stk를 만드려고 합니다. 변수 i를 만들어 초기값을 0으로 설정한 후 i가 arr의 길이보다 작으면 다음 작업을 반복합니다. 만약 stk가 빈 배열이라면 arr[i]를 stk에 추가하고 i에 1을 더합니다. stk에 원소가 있고, stk의 마지막 원소가 arr[i]보다 작으면 arr[i]를 stk의 뒤에 추가하고 i에 1을 더합니다. stk에 원소가 있는데 stk의 마지막 원소가 arr[i]보다 크거나 같으면 stk의 마지막 원소를 stk에서 제거합니다. 위 작업을 마친 후 만들어진 stk를 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 100,000 1 ≤ arr의 원소 ≤ 100,000 문..

Q. 모든 자연수 x에 대해서 현재 값이 x이면 x가 짝수일 때는 2로 나누고, x가 홀수일 때는 3 * x + 1로 바꾸는 계산을 계속해서 반복하면 언젠가는 반드시 x가 1이 되는지 묻는 문제를 콜라츠 문제라고 부릅니다. 그리고 위 과정에서 거쳐간 모든 수를 기록한 수열을 콜라츠 수열이라고 부릅니다. 계산 결과 1,000 보다 작거나 같은 수에 대해서는 전부 언젠가 1에 도달한다는 것이 알려져 있습니다. 임의의 1,000 보다 작거나 같은 양의 정수 n이 주어질 때 초기값이 n인 콜라츠 수열을 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ n ≤ 1,000 문제가 길지만 생각보다 간단한 문제이다. x가 짝수이면 2로 나누고 x가 홀수이면 3*x+1 을 하면된다. 10 -> 짝..

Q. 정수 start와 end가 주어질 때, start부터 end까지의 숫자를 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요. 제한사항 0 ≤ start ≤ end ≤ 50 start 에서 end 까지 1씩 증가하면서 배열에 저장하면 되는 문제다. for 문에 범위를 잘 설정하고 push 하면 간단히 풀수있다. function solution(start, end) { var answer = []; for (let i = start ; i

Q. 정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다. 제한사항 1 ≤ l ≤ r ≤ 1,000,000 l 과 r 사이의 숫자들중 0과 5 만으로 표현되는 숫자를 배열로 모우면 된다 . 먼저 l과 r 사이의 숫자를 뽑기위해 for 문을 사용 숫자의 자릿수를 각각 구분하기위해서 `${i}` 로 문자로 만들고 [...str] // 배열로 만들어주는 spread operator 사용했다. 그리고 배열로 바뀐 문자열이 각각 "5" 거나 "0" 일때마다 그다음 카운트를 샐 변수 j 를 만들어서 조건을 만족..

Q . 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다. 각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 i가 k의 배수이면 arr[i]에 1을 더합니다. 위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요. 제한사항 1 ≤ arr의 길이 ≤ 1,000 0 ≤ arr의 원소 ≤ 1,000,000 1 ≤ queries의 길이 ≤ 1,000 0 ≤ s ≤ e