목록프로그래머스/0단계 (66)
연습장
Q. 정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num_list의 길이 ≤ 10 1 ≤ num_list의 원소 ≤ 9 num_list에는 적어도 한 개씩의 짝수와 홀수가 있습니다. num_list 에 정수들이 있고 이를 홀 / 짝으로 분류 한다. 홀수는 홀수끼리 순서대로 이어 붙이고 ( 문자로 더함 ) 짝수는 짝수끼리 만들어진 두 숫자를 더하는게 목표이다. odd 에 홀수를 이어 붙이고 even 에 짝수를 이어 붙인다. 배열의 모든 숫자에 대해 진행해야 하므로 forEach 를 사용하고 삼항연산자로 각각의 원소가 홀 / 짝 인지 판별 후 o..
Q. 정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num_list의 길이 ≤ 10 1 ≤ num_list의 원소 ≤ 9 1. 모든 원소의 곱이 // for 문으로 각각 가져와서 곱 할 수 있다. 2. 모든 원소들의 합의 제곱 // for 문으로 각각 가져와서 더하고 for 문 종료후 제곱 작으면 1 크면 0 // if 문 , 삼항연산자로 위의 둘을 비교 num1 // 배열 원소들의 곱 num2 // 배열 원소들의 합 의 제곱 function solution(num_list) { let num1 = 1; let num2 = 0; for (let i = 0 ; ..
Q. 1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다. 세 숫자가 모두 다르다면 a + b + c 점을 얻습니다. 세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) × (a2 + b2 + c2 )점을 얻습니다. 세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다. 세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요. 제한사항 a, b, c는 1이상 6이하의 정수입니다. 간단하면서 귀찮은 문제이다. 1. a == b , b == c 2. a..
Q . 두 정수 a, d와 길이가 n인 boolean 배열 included가 주어집니다. 첫째항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때, 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ a ≤ 100 1 ≤ d ≤ 100 1 ≤ included의 길이 ≤ 100 included에는 true가 적어도 하나 존재합니다. 등차수열 : 두 항의 차이가 모두 일정한 수열을 뜻한다. 이중에서 true 인 부분만 모아서 더하면 되는 문제이다. 간단하게 표현해보자면 i 번째의 값 = a + d * i // (i는 인덱스) 라고 볼 수 있다. included[i] = true ..
Q . 문자열 code가 주어집니다. code를 앞에서부터 읽으면서 만약 문자가 "1"이면 mode를 바꿉니다. mode에 따라 code를 읽어가면서 문자열 ret을 만들어냅니다. mode는 0과 1이 있으며, idx를 0 부터 code의 길이 - 1 까지 1씩 키워나가면서 code[idx]의 값에 따라 다음과 같이 행동합니다. mode가 0일 때 code[idx]가 "1"이 아니면 idx가 짝수일 때만 ret의 맨 뒤에 code[idx]를 추가합니다. code[idx]가 "1"이면 mode를 0에서 1로 바꿉니다. mode가 1일 때 code[idx]가 "1"이 아니면 idx가 홀수일 때만 ret의 맨 뒤에 code[idx]를 추가합니다. code[idx]가 "1"이면 mode를 1에서 0으로 바꿉니다..
Q. 두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요. 제한조건 -1000 ≤ a, b ≤ 1,000 flag 가 true 이면 a+b flag 가 flase 면 a-b 조건과 참, 거짓에 대한 실행결과 이므로 삼항연산자를 이용하여 간단하게 풀었다 function solution(a, b, flag) { return flag ? a+b : a-b; }
Q . 문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다. 두 수가 n과 m이라면 ">", "=" : n >= m "", "!" : n > m "" && eq == "=" 4. ineq == ">" && eq == "!" 총 4가지 경우에 대해 다 진행 하여 코드가 길어졌다. function solution(ineq, eq, n, m) { var answer = 0; if ( ineq == "" && eq == "=") { if (n >= m) { answer = 1 } } else { if (n > m) { answer = 1 } } return answer; } 다른사람풀이 function solution(ineq, eq, n, m) { if (eq === '=' && n === m) re..
Q. 양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ n ≤ 100 n이 홀수면 -> n 이하의 홀수의 합. n이 짝수면 -> n 이하의 짝수의 제곱의 합 ex) 10 -> 2**2 + 4**2 + 6**2 + 8**2 + 10**2 = 220 9 -> 1 + 3 + 5 + 7 + 9 = 25 즉 if 문으로 n 의 홀짝 판별 -> for 문을 이용하여 n보다 작은수에 대해서 연산 진행 짝수든 홀수든 2씩 차이나기 때문에 증감 연산자를 이용하여 2씩 감소 시키면서 0보다 큰 i 들을 구하고 계산하였다. fu..
Q. 정수 number와 n, m이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요. 제한사항 10 ≤ number ≤ 100 2 ≤ n, m 나머지가 0 이다. 해서 number%(n*m) == 0 을 했는데 몇개 test 에서 오류가 났다. 나중에 찾아보니 만약 number 가 8 % (4*8) 일 경우 오류가 날 수 있다고 한다. 그래서 다른 방법으로 해결했다. 1. n 으로 나누었을때 나머지가 0 이다 2. m 으로 나누었을때 나머지가 0 이다 라는 두 조건을 &&(and) 로 묶어서 삼항연산자를 이용했다. function solution(number, n, m) { return number%n == 0 && num..
Q. 정수 num과 n이 매개 변수로 주어질 때, num이 n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num ≤ 100 2 ≤ n ≤ 9 num이 n의 배수 이다 . -> num 을 n 으로 나눴을때 나누어 떨어진다. -> 나머지가 0 이다. 삼항연산자를 이용하여 나누어 떨어지면 (조건이 참이면) 1 을 반환 : 아니면 false 면 0 을 반환 function solution(num, n) { return num%n == 0 ? 1 : 0 }