diff --git a/lv 0 page 4.js b/lv 0 page 4.js
index b36c3ee..e8697f0 100644
--- a/lv 0 page 4.js
+++ b/lv 0 page 4.js
@@ -92,4 +92,216 @@
// spread 문법으로 훨씬 간결하게
+//4-7 k의 개수
+// function solution(i, j, k) {
+// // i 2- j 102 k 6 차 100, 합 104 / 4 4
+// // 22-102 6
+// // i 8- j 102 k 6 차 94, 합 110 / -2 6
+// // if(k>i){
+// // let upper_interval = k-i
+
+// // }
+// // else if(k x.includes(k)).length
+// }
+// return counter;
+// }
+
+// console.log(solution(1,12,1))
+
+// 이진수 더하기
+// function solution(bin1, bin2) {
+// // 11011 111 = 11221 >reverse 12211
+// // 1,0이면 유지, 2면 0으로 바꾸고 다음자리 +1
+// //> 10001
+// let sum = Number(bin1) + Number(bin2)
+// let operator = 0;
+// let array = sum.toString().split('').reverse().map( x => {
+// if (Number(x)+operator === 0 || Number(x)+operator===1) {
+// let temp = Number(x) + operator
+// operator = 0;
+// return temp;}
+// else if(Number(x) === 2 && operator === 1){
+// operator = 1;
+// return 1
+// }
+// else {operator = 1;
+// return 0}}).reverse()
+// console.log(array[0])
+// if(array[0]===0) array.unshift(1)
+// else if(array[0]===1 && operator===1) array.unshift(1)
+// return array.join('')
+// }
+// console.log(solution( "1001", "1111"))
+//2112
+
+// function solution(array) {
+// let result = 0;
+// for (let i in array){
+// let str = array[i].toString()
+// if(str.includes('7')){
+// result += str.split('').filter(x => x==='7').length
+// }
+// }
+// return result;
+// }
+
+// console.log(solution([7, 77, 17]))
+
+ // 현타옴 split에 대해 다시 공부!! for in 도 다시 한 번 공부
+// function solution(array) {
+// return array.join('').split('7').length-1;
+// }
+
+// function solution(n) {
+// let dupli = n
+// let result = [];
+// for(i=2; i<=dupli/2; i++){
+// if(n%i===0) {
+// result.push(i);
+// for(j=i; n%j===0; j=j){
+// n = n/j;
+// }
+// }
+// }
+// if(result.length === 0) result.push(dupli)
+// return result;
+// }
+
+// console.log(solution(12))
+
+// 잘라서 배열로 저장하기
+// function solution(my_str, n) {
+// return my_str.match(new RegExp(`.{1,${n}}`, "g"));
+// }
+
+//
+// function solution(my_string) {
+// let array = my_string.split(' ')
+// let result = Number(array.shift())
+// for(i=0; i<(array.length-1); i+=2){
+// if(array[i]==="+"){
+// result += Number(array[i+1])
+// }
+// else{
+// result -= Number(array[i+1])
+// }
+// }
+// return result;
+// }
+
+// 구슬을 나누는 경우의 수
+// function solution(balls, share) {
+// if(balls === 1) return 1;
+// let sibling = 1;
+// let mother = 1;
+// for(i=0; i
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
+ +### 출력 + +첫째 줄에 A-B를 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/10818.\342\200\205\354\265\234\354\206\214\357\274\214\342\200\205\354\265\234\353\214\200/README.md" "b/\353\260\261\354\244\200/Bronze/10818.\342\200\205\354\265\234\354\206\214\357\274\214\342\200\205\354\265\234\353\214\200/README.md" new file mode 100644 index 0000000..2fdeb6a --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/10818.\342\200\205\354\265\234\354\206\214\357\274\214\342\200\205\354\265\234\353\214\200/README.md" @@ -0,0 +1,24 @@ +# [Bronze III] 최소, 최대 - 10818 + +[문제 링크](https://www.acmicpc.net/problem/10818) + +### 성능 요약 + +메모리: 97228 KB, 시간: 508 ms + +### 분류 + +구현, 수학 + +### 문제 설명 + +N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
+ +### 출력 + +첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/10818.\342\200\205\354\265\234\354\206\214\357\274\214\342\200\205\354\265\234\353\214\200/\354\265\234\354\206\214\357\274\214\342\200\205\354\265\234\353\214\200.js" "b/\353\260\261\354\244\200/Bronze/10818.\342\200\205\354\265\234\354\206\214\357\274\214\342\200\205\354\265\234\353\214\200/\354\265\234\354\206\214\357\274\214\342\200\205\354\265\234\353\214\200.js" new file mode 100644 index 0000000..b1559f6 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/10818.\342\200\205\354\265\234\354\206\214\357\274\214\342\200\205\354\265\234\353\214\200/\354\265\234\354\206\214\357\274\214\342\200\205\354\265\234\353\214\200.js" @@ -0,0 +1,11 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); +let len = Number(input[0]); +let arr = input[1].split(' ').map(Number); +let min=1000001; +let max=-1000001; +arr.map(el=>{ + if(el < min) min = el; + if(el > max) max = el; + }) +console.log(min, max); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/10869.\342\200\205\354\202\254\354\271\231\354\227\260\354\202\260/README.md" "b/\353\260\261\354\244\200/Bronze/10869.\342\200\205\354\202\254\354\271\231\354\227\260\354\202\260/README.md" new file mode 100644 index 0000000..44752c0 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/10869.\342\200\205\354\202\254\354\271\231\354\227\260\354\202\260/README.md" @@ -0,0 +1,24 @@ +# [Bronze V] 사칙연산 - 10869 + +[문제 링크](https://www.acmicpc.net/problem/10869) + +### 성능 요약 + +메모리: 9608 KB, 시간: 132 ms + +### 분류 + +구현, 사칙연산, 수학 + +### 문제 설명 + +두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오.
+ +### 입력 + +두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000)
+ +### 출력 + +첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/10869.\342\200\205\354\202\254\354\271\231\354\227\260\354\202\260/\354\202\254\354\271\231\354\227\260\354\202\260.js" "b/\353\260\261\354\244\200/Bronze/10869.\342\200\205\354\202\254\354\271\231\354\227\260\354\202\260/\354\202\254\354\271\231\354\227\260\354\202\260.js" new file mode 100644 index 0000000..751076e --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/10869.\342\200\205\354\202\254\354\271\231\354\227\260\354\202\260/\354\202\254\354\271\231\354\227\260\354\202\260.js" @@ -0,0 +1,11 @@ +const fs = require("fs"); +const inputData = fs.readFileSync("/dev/stdin").toString().split(" "); + +const A = parseInt(inputData[0]); +const B = parseInt(inputData[1]); + +console.log(A+B); +console.log(A-B); +console.log(A*B); +console.log(Math.floor(A/B)); +console.log(A%B); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/10998.\342\200\205A\303\227B/A\303\227B.js" "b/\353\260\261\354\244\200/Bronze/10998.\342\200\205A\303\227B/A\303\227B.js" new file mode 100644 index 0000000..8803463 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/10998.\342\200\205A\303\227B/A\303\227B.js" @@ -0,0 +1,7 @@ +const fs = require('fs'); +const inputData = fs.readFileSync("/dev/stdin").toString().split(" "); + +const A = parseInt(inputData[0]); +const B = parseInt(inputData[1]); + +console.log(A*B); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/10998.\342\200\205A\303\227B/README.md" "b/\353\260\261\354\244\200/Bronze/10998.\342\200\205A\303\227B/README.md" new file mode 100644 index 0000000..f70f15d --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/10998.\342\200\205A\303\227B/README.md" @@ -0,0 +1,24 @@ +# [Bronze V] A×B - 10998 + +[문제 링크](https://www.acmicpc.net/problem/10998) + +### 성능 요약 + +메모리: 9344 KB, 시간: 128 ms + +### 분류 + +구현, 사칙연산, 수학 + +### 문제 설명 + +두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
+ +### 출력 + +첫째 줄에 A×B를 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/1152.\342\200\205\353\213\250\354\226\264\354\235\230\342\200\205\352\260\234\354\210\230/README.md" "b/\353\260\261\354\244\200/Bronze/1152.\342\200\205\353\213\250\354\226\264\354\235\230\342\200\205\352\260\234\354\210\230/README.md" new file mode 100644 index 0000000..7ad60d5 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/1152.\342\200\205\353\213\250\354\226\264\354\235\230\342\200\205\352\260\234\354\210\230/README.md" @@ -0,0 +1,24 @@ +# [Bronze II] 단어의 개수 - 1152 + +[문제 링크](https://www.acmicpc.net/problem/1152) + +### 성능 요약 + +메모리: 23260 KB, 시간: 172 ms + +### 분류 + +구현, 문자열 + +### 문제 설명 + +영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
+ +### 입력 + +첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.
+ +### 출력 + +첫째 줄에 단어의 개수를 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/1152.\342\200\205\353\213\250\354\226\264\354\235\230\342\200\205\352\260\234\354\210\230/\353\213\250\354\226\264\354\235\230\342\200\205\352\260\234\354\210\230.js" "b/\353\260\261\354\244\200/Bronze/1152.\342\200\205\353\213\250\354\226\264\354\235\230\342\200\205\352\260\234\354\210\230/\353\213\250\354\226\264\354\235\230\342\200\205\352\260\234\354\210\230.js" new file mode 100644 index 0000000..e4e9b6d --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/1152.\342\200\205\353\213\250\354\226\264\354\235\230\342\200\205\352\260\234\354\210\230/\353\213\250\354\226\264\354\235\230\342\200\205\352\260\234\354\210\230.js" @@ -0,0 +1,10 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let arr = input[0].trim().split(" "); + +if(arr == "") { + console.log(0); +} else { + console.log(arr.length) +} diff --git "a/\353\260\261\354\244\200/Bronze/11720.\342\200\205\354\210\253\354\236\220\354\235\230\342\200\205\355\225\251/README.md" "b/\353\260\261\354\244\200/Bronze/11720.\342\200\205\354\210\253\354\236\220\354\235\230\342\200\205\355\225\251/README.md" new file mode 100644 index 0000000..cf67f3e --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/11720.\342\200\205\354\210\253\354\236\220\354\235\230\342\200\205\355\225\251/README.md" @@ -0,0 +1,24 @@ +# [Bronze IV] 숫자의 합 - 11720 + +[문제 링크](https://www.acmicpc.net/problem/11720) + +### 성능 요약 + +메모리: 9572 KB, 시간: 128 ms + +### 분류 + +구현, 수학, 문자열 + +### 문제 설명 + +N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
+ +### 출력 + +입력으로 주어진 숫자 N개의 합을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/11720.\342\200\205\354\210\253\354\236\220\354\235\230\342\200\205\355\225\251/\354\210\253\354\236\220\354\235\230\342\200\205\355\225\251.js" "b/\353\260\261\354\244\200/Bronze/11720.\342\200\205\354\210\253\354\236\220\354\235\230\342\200\205\355\225\251/\354\210\253\354\236\220\354\235\230\342\200\205\355\225\251.js" new file mode 100644 index 0000000..be5c553 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/11720.\342\200\205\354\210\253\354\236\220\354\235\230\342\200\205\355\225\251/\354\210\253\354\236\220\354\235\230\342\200\205\355\225\251.js" @@ -0,0 +1,6 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); +let counts = Number(input[0]); +let sum = input[1].split('').map(Number).reduce((a,b)=> a+b) + +console.log(sum); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/1546.\342\200\205\355\217\211\352\267\240/README.md" "b/\353\260\261\354\244\200/Bronze/1546.\342\200\205\355\217\211\352\267\240/README.md" new file mode 100644 index 0000000..184d074 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/1546.\342\200\205\355\217\211\352\267\240/README.md" @@ -0,0 +1,28 @@ +# [Bronze I] 평균 - 1546 + +[문제 링크](https://www.acmicpc.net/problem/1546) + +### 성능 요약 + +메모리: 9336 KB, 시간: 136 ms + +### 분류 + +사칙연산, 수학 + +### 문제 설명 + +세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.
+ +예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.
+ +세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다.
+ +### 출력 + +첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-2 이하이면 정답이다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/1546.\342\200\205\355\217\211\352\267\240/\355\217\211\352\267\240.js" "b/\353\260\261\354\244\200/Bronze/1546.\342\200\205\355\217\211\352\267\240/\355\217\211\352\267\240.js" new file mode 100644 index 0000000..2319f8f --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/1546.\342\200\205\355\217\211\352\267\240/\355\217\211\352\267\240.js" @@ -0,0 +1,11 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); +let testnumber = Number(input[0]); +let data = input[1].split(' ').map(Number); +let maxscore = Math.max(...data); +let newsum = 0; +for (let i=0; i< data.length; i++) { + newsum += (data[i]/maxscore); + } +let newaverage = (newsum / data.length * 100).toFixed(4); +console.log(newaverage); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/15552.\342\200\205\353\271\240\353\245\270\342\200\205A\357\274\213B/README.md" "b/\353\260\261\354\244\200/Bronze/15552.\342\200\205\353\271\240\353\245\270\342\200\205A\357\274\213B/README.md" new file mode 100644 index 0000000..7d074df --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/15552.\342\200\205\353\271\240\353\245\270\342\200\205A\357\274\213B/README.md" @@ -0,0 +1,36 @@ +# [Bronze IV] 빠른 A+B - 15552 + +[문제 링크](https://www.acmicpc.net/problem/15552) + +### 성능 요약 + +메모리: 163816 KB, 시간: 1324 ms + +### 분류 + +구현, 사칙연산, 수학 + +### 문제 설명 + +본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.
+ +C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다.
Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다.
Python을 사용하고 있다면, input 대신 sys.stdin.readline을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다.
또한 입력과 출력 스트림은 별개이므로, 테스트케이스를 전부 입력받아서 저장한 뒤 전부 출력할 필요는 없다. 테스트케이스를 하나 받은 뒤 하나 출력해도 된다.
+ +자세한 설명 및 다른 언어의 경우는 이 글에 설명되어 있다.
+ +이 블로그 글에서 BOJ의 기타 여러 가지 팁을 볼 수 있다.
+ +### 입력 + +첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
+ +### 출력 + +각 테스트케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/15552.\342\200\205\353\271\240\353\245\270\342\200\205A\357\274\213B/\353\271\240\353\245\270\342\200\205A\357\274\213B.js" "b/\353\260\261\354\244\200/Bronze/15552.\342\200\205\353\271\240\353\245\270\342\200\205A\357\274\213B/\353\271\240\353\245\270\342\200\205A\357\274\213B.js" new file mode 100644 index 0000000..9608946 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/15552.\342\200\205\353\271\240\353\245\270\342\200\205A\357\274\213B/\353\271\240\353\245\270\342\200\205A\357\274\213B.js" @@ -0,0 +1,12 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let n = Number(input[0]); +let answer = ''; +for(i=1; i<=n; i++){ + let data = input[i].split(' '); + let a = Number(data[0]) + let b = Number(data[1]) + answer += a+b + '\n'; +} +console.log(answer); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/2438.\342\200\205\353\263\204\342\200\205\354\260\215\352\270\260\342\200\205\357\274\215\342\200\2051/README.md" "b/\353\260\261\354\244\200/Bronze/2438.\342\200\205\353\263\204\342\200\205\354\260\215\352\270\260\342\200\205\357\274\215\342\200\2051/README.md" new file mode 100644 index 0000000..25f6aae --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2438.\342\200\205\353\263\204\342\200\205\354\260\215\352\270\260\342\200\205\357\274\215\342\200\2051/README.md" @@ -0,0 +1,24 @@ +# [Bronze V] 별 찍기 - 1 - 2438 + +[문제 링크](https://www.acmicpc.net/problem/2438) + +### 성능 요약 + +메모리: 9628 KB, 시간: 128 ms + +### 분류 + +구현 + +### 문제 설명 + +첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
+ +### 입력 + +첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
+ +### 출력 + +첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/2438.\342\200\205\353\263\204\342\200\205\354\260\215\352\270\260\342\200\205\357\274\215\342\200\2051/\353\263\204\342\200\205\354\260\215\352\270\260\342\200\205\357\274\215\342\200\2051.js" "b/\353\260\261\354\244\200/Bronze/2438.\342\200\205\353\263\204\342\200\205\354\260\215\352\270\260\342\200\205\357\274\215\342\200\2051/\353\263\204\342\200\205\354\260\215\352\270\260\342\200\205\357\274\215\342\200\2051.js" new file mode 100644 index 0000000..c3bf86f --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2438.\342\200\205\353\263\204\342\200\205\354\260\215\352\270\260\342\200\205\357\274\215\342\200\2051/\353\263\204\342\200\205\354\260\215\352\270\260\342\200\205\357\274\215\342\200\2051.js" @@ -0,0 +1,13 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let N = Number(input[0]); + +for (let i=0; i예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게 된다.
+ +3개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램을 작성 하시오.
+ +### 입력 + +첫째 줄에 3개의 눈이 빈칸을 사이에 두고 각각 주어진다.
+ +### 출력 + +첫째 줄에 게임의 상금을 출력 한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/2480.\342\200\205\354\243\274\354\202\254\354\234\204\342\200\205\354\204\270\352\260\234/\354\243\274\354\202\254\354\234\204\342\200\205\354\204\270\352\260\234.js" "b/\353\260\261\354\244\200/Bronze/2480.\342\200\205\354\243\274\354\202\254\354\234\204\342\200\205\354\204\270\352\260\234/\354\243\274\354\202\254\354\234\204\342\200\205\354\204\270\352\260\234.js" new file mode 100644 index 0000000..9dbc1e3 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2480.\342\200\205\354\243\274\354\202\254\354\234\204\342\200\205\354\204\270\352\260\234/\354\243\274\354\202\254\354\234\204\342\200\205\354\204\270\352\260\234.js" @@ -0,0 +1,15 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let a = Number(input[0].split(' ')[0]); +let b = Number(input[0].split(' ')[1]); +let c = Number(input[0].split(' ')[2]); + +if(a === b && b === c) console.log(10000 + a*1000); +else if (a===b) console.log(1000 + a*100); +else if (a===c) console.log(1000 + a*100); +else if (b===c) console.log(1000 + b*100); + +else console.log(Math.max(a,b,c)*100); + + diff --git "a/\353\260\261\354\244\200/Bronze/2525.\342\200\205\354\230\244\353\270\220\342\200\205\354\213\234\352\263\204/README.md" "b/\353\260\261\354\244\200/Bronze/2525.\342\200\205\354\230\244\353\270\220\342\200\205\354\213\234\352\263\204/README.md" new file mode 100644 index 0000000..aa32ced --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2525.\342\200\205\354\230\244\353\270\220\342\200\205\354\213\234\352\263\204/README.md" @@ -0,0 +1,28 @@ +# [Bronze III] 오븐 시계 - 2525 + +[문제 링크](https://www.acmicpc.net/problem/2525) + +### 성능 요약 + +메모리: 9580 KB, 시간: 116 ms + +### 분류 + +사칙연산, 수학 + +### 문제 설명 + +KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다.
+ +또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다.
+ +훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. 두 번째 줄에는 요리하는 데 필요한 시간 C (0 ≤ C ≤ 1,000)가 분 단위로 주어진다.
+ +### 출력 + +첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)
+ diff --git "a/\353\260\261\354\244\200/Bronze/2525.\342\200\205\354\230\244\353\270\220\342\200\205\354\213\234\352\263\204/\354\230\244\353\270\220\342\200\205\354\213\234\352\263\204.js" "b/\353\260\261\354\244\200/Bronze/2525.\342\200\205\354\230\244\353\270\220\342\200\205\354\213\234\352\263\204/\354\230\244\353\270\220\342\200\205\354\213\234\352\263\204.js" new file mode 100644 index 0000000..668f56e --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2525.\342\200\205\354\230\244\353\270\220\342\200\205\354\213\234\352\263\204/\354\230\244\353\270\220\342\200\205\354\213\234\352\263\204.js" @@ -0,0 +1,12 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let [Hour, Minute] = input[0].split(' ').map(Number); +let Cook = Number(input[1]); + +let totalM = Hour*60 + Minute + Cook; +totalM %= 1440; +let H = parseInt(totalM/60); +let M = totalM%60; + +console.log(H + " " + M) diff --git "a/\353\260\261\354\244\200/Bronze/2562.\342\200\205\354\265\234\353\214\223\352\260\222/README.md" "b/\353\260\261\354\244\200/Bronze/2562.\342\200\205\354\265\234\353\214\223\352\260\222/README.md" new file mode 100644 index 0000000..12f8a1e --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2562.\342\200\205\354\265\234\353\214\223\352\260\222/README.md" @@ -0,0 +1,30 @@ +# [Bronze III] 최댓값 - 2562 + +[문제 링크](https://www.acmicpc.net/problem/2562) + +### 성능 요약 + +메모리: 9324 KB, 시간: 120 ms + +### 분류 + +구현 + +### 문제 설명 + +9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
+ +예를 들어, 서로 다른 9개의 자연수
+ +3, 29, 38, 12, 57, 74, 40, 85, 61
+ +이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
+ +### 입력 + +첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
+ +### 출력 + +첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/2562.\342\200\205\354\265\234\353\214\223\352\260\222/\354\265\234\353\214\223\352\260\222.js" "b/\353\260\261\354\244\200/Bronze/2562.\342\200\205\354\265\234\353\214\223\352\260\222/\354\265\234\353\214\223\352\260\222.js" new file mode 100644 index 0000000..6fb21bd --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2562.\342\200\205\354\265\234\353\214\223\352\260\222/\354\265\234\353\214\223\352\260\222.js" @@ -0,0 +1,7 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); +let arr = input.map(Number); +let index = -1; +let max = arr.reduce((a,b)=> Math.max(a,b)) +index = arr.indexOf(max) +console.log(`${max}\n${index+1}`) \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/2588.\342\200\205\352\263\261\354\205\210/README.md" "b/\353\260\261\354\244\200/Bronze/2588.\342\200\205\352\263\261\354\205\210/README.md" new file mode 100644 index 0000000..827cbe9 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2588.\342\200\205\352\263\261\354\205\210/README.md" @@ -0,0 +1,28 @@ +# [Bronze III] 곱셈 - 2588 + +[문제 링크](https://www.acmicpc.net/problem/2588) + +### 성능 요약 + +메모리: 9592 KB, 시간: 120 ms + +### 분류 + +사칙연산, 수학 + +### 문제 설명 + +(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.
+ +.png)
(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
+ +### 출력 + +첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/2588.\342\200\205\352\263\261\354\205\210/\352\263\261\354\205\210.js" "b/\353\260\261\354\244\200/Bronze/2588.\342\200\205\352\263\261\354\205\210/\352\263\261\354\205\210.js" new file mode 100644 index 0000000..37bd587 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2588.\342\200\205\352\263\261\354\205\210/\352\263\261\354\205\210.js" @@ -0,0 +1,14 @@ +const fs = require('fs'); +const input = fs.readFileSync("/dev/stdin").toString().split('\n'); + +const a = input[0] +const b = input[1] + +const b100 = b[0] +const b10 = b[1] +const b1 = b[2] + +console.log(Number(a)*Number(b1)); +console.log(Number(a)*Number(b10)); +console.log(Number(a)*Number(b100)); +console.log(Number(a)*Number(b)); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/2675.\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\260\230\353\263\265/README.md" "b/\353\260\261\354\244\200/Bronze/2675.\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\260\230\353\263\265/README.md" new file mode 100644 index 0000000..31a3083 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2675.\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\260\230\353\263\265/README.md" @@ -0,0 +1,26 @@ +# [Bronze II] 문자열 반복 - 2675 + +[문제 링크](https://www.acmicpc.net/problem/2675) + +### 성능 요약 + +메모리: 9352 KB, 시간: 136 ms + +### 분류 + +구현, 문자열 + +### 문제 설명 + +문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다.
+ +QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다.
첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다.
+ +### 출력 + +각 테스트 케이스에 대해 P를 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/2675.\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\260\230\353\263\265/\353\254\270\354\236\220\354\227\264\342\200\205\353\260\230\353\263\265.js" "b/\353\260\261\354\244\200/Bronze/2675.\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\260\230\353\263\265/\353\254\270\354\236\220\354\227\264\342\200\205\353\260\230\353\263\265.js" new file mode 100644 index 0000000..0387747 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2675.\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\260\230\353\263\265/\353\254\270\354\236\220\354\227\264\342\200\205\353\260\230\353\263\265.js" @@ -0,0 +1,14 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let num = Number(input[0]); + +for(i=1; i첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다.
+ +### 출력 + +출력형식과 같게 N*1부터 N*9까지 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/2739.\342\200\205\352\265\254\352\265\254\353\213\250/\352\265\254\352\265\254\353\213\250.js" "b/\353\260\261\354\244\200/Bronze/2739.\342\200\205\352\265\254\352\265\254\353\213\250/\352\265\254\352\265\254\353\213\250.js" new file mode 100644 index 0000000..c9bbaed --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2739.\342\200\205\352\265\254\352\265\254\353\213\250/\352\265\254\352\265\254\353\213\250.js" @@ -0,0 +1,7 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); +let n = Number(input[0]); + +for (let i=1; i<=9; i++){ + console.log(`${n} * ${i} = ${n*i}`) +} \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/2750.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" "b/\353\260\261\354\244\200/Bronze/2750.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..39a1e79 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2750.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" @@ -0,0 +1,24 @@ +# [Bronze II] 수 정렬하기 - 2750 + +[문제 링크](https://www.acmicpc.net/problem/2750) + +### 성능 요약 + +메모리: 11248 KB, 시간: 288 ms + +### 분류 + +정렬, 구현 + +### 문제 설명 + +N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
+ +### 출력 + +첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/2750.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.js" "b/\353\260\261\354\244\200/Bronze/2750.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.js" new file mode 100644 index 0000000..468d8d5 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2750.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.js" @@ -0,0 +1,17 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let n = Number(input[0]); + +let arr = []; +for(let i=1; i<=n; i++){ + arr.push(Number(input[i])) +} + +let sorted = arr.sort((a,b) => a-b) + +let answer = ""; + +for (let i=0; i숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다.
+ +숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오.
+ +### 입력 + +숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다.
+ +### 출력 + +제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/2752.\342\200\205\354\204\270\354\210\230\354\240\225\353\240\254/\354\204\270\354\210\230\354\240\225\353\240\254.js" "b/\353\260\261\354\244\200/Bronze/2752.\342\200\205\354\204\270\354\210\230\354\240\225\353\240\254/\354\204\270\354\210\230\354\240\225\353\240\254.js" new file mode 100644 index 0000000..d457260 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2752.\342\200\205\354\204\270\354\210\230\354\240\225\353\240\254/\354\204\270\354\210\230\354\240\225\353\240\254.js" @@ -0,0 +1,11 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let data = input[0].split(' ').map(Number); + +let sorted = []; +sorted[0] = Math.min(...data) +sorted[2] = Math.max(...data) +sorted[1] = data.filter(x => (x !== Math.min(...data))&&(x !== Math.max(...data)))[0] + +console.log(sorted[0],sorted[1],sorted[2]) \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/27866.\342\200\205\353\254\270\354\236\220\354\231\200\342\200\205\353\254\270\354\236\220\354\227\264/README.md" "b/\353\260\261\354\244\200/Bronze/27866.\342\200\205\353\254\270\354\236\220\354\231\200\342\200\205\353\254\270\354\236\220\354\227\264/README.md" new file mode 100644 index 0000000..b000edb --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/27866.\342\200\205\353\254\270\354\236\220\354\231\200\342\200\205\353\254\270\354\236\220\354\227\264/README.md" @@ -0,0 +1,26 @@ +# [Bronze V] 문자와 문자열 - 27866 + +[문제 링크](https://www.acmicpc.net/problem/27866) + +### 성능 요약 + +메모리: 9328 KB, 시간: 116 ms + +### 분류 + +구현, 문자열 + +### 문제 설명 + +단어
첫째 줄에 영어 소문자와 대문자로만 이루어진 단어
둘째 줄에 정수
상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다.
+ +상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다.
+ +이런 상근이를 불쌍하게 보던 창영이는 자신이 사용하는 방법을 추천해 주었다.
+ +바로 "45분 일찍 알람 설정하기"이다.
+ +이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리를 들으면, 알람을 끄고 조금 더 잘 것이기 때문이다. 이 방법을 사용하면, 매일 아침 더 잤다는 기분을 느낄 수 있고, 학교도 지각하지 않게 된다.
+ +현재 상근이가 설정한 알람 시각이 주어졌을 때, 창영이의 방법을 사용한다면, 이를 언제로 고쳐야 하는지 구하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 두 정수 H와 M이 주어진다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 현재 상근이가 설정한 놓은 알람 시간 H시 M분을 의미한다.
+ +입력 시간은 24시간 표현을 사용한다. 24시간 표현에서 하루의 시작은 0:0(자정)이고, 끝은 23:59(다음날 자정 1분 전)이다. 시간을 나타낼 때, 불필요한 0은 사용하지 않는다.
+ +### 출력 + +첫째 줄에 상근이가 창영이의 방법을 사용할 때, 설정해야 하는 알람 시간을 출력한다. (입력과 같은 형태로 출력하면 된다.)
+ diff --git "a/\353\260\261\354\244\200/Bronze/2884.\342\200\205\354\225\214\353\236\214\342\200\205\354\213\234\352\263\204/\354\225\214\353\236\214\342\200\205\354\213\234\352\263\204.js" "b/\353\260\261\354\244\200/Bronze/2884.\342\200\205\354\225\214\353\236\214\342\200\205\354\213\234\352\263\204/\354\225\214\353\236\214\342\200\205\354\213\234\352\263\204.js" new file mode 100644 index 0000000..2b8d8ed --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2884.\342\200\205\354\225\214\353\236\214\342\200\205\354\213\234\352\263\204/\354\225\214\353\236\214\342\200\205\354\213\234\352\263\204.js" @@ -0,0 +1,14 @@ +let fs = require('fs'); +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let H = Number(input[0].split(' ')[0]); +let M = Number(input[0].split(' ')[1]); + +if (M < 45) { + H -= 1; + M += 15; + if (H < 0) H = 23; +} +else M -= 45; + +console.log(H + " " + M); diff --git "a/\353\260\261\354\244\200/Bronze/2908.\342\200\205\354\203\201\354\210\230/README.md" "b/\353\260\261\354\244\200/Bronze/2908.\342\200\205\354\203\201\354\210\230/README.md" new file mode 100644 index 0000000..3b6a081 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2908.\342\200\205\354\203\201\354\210\230/README.md" @@ -0,0 +1,28 @@ +# [Bronze II] 상수 - 2908 + +[문제 링크](https://www.acmicpc.net/problem/2908) + +### 성능 요약 + +메모리: 9332 KB, 시간: 120 ms + +### 분류 + +구현, 수학 + +### 문제 설명 + +상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
+ +상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
+ +두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.
+ +### 출력 + +첫째 줄에 상수의 대답을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/2908.\342\200\205\354\203\201\354\210\230/\354\203\201\354\210\230.js" "b/\353\260\261\354\244\200/Bronze/2908.\342\200\205\354\203\201\354\210\230/\354\203\201\354\210\230.js" new file mode 100644 index 0000000..92eb69f --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/2908.\342\200\205\354\203\201\354\210\230/\354\203\201\354\210\230.js" @@ -0,0 +1,10 @@ +let fs = require('fs'); +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let a = input[0].split(' ')[0]; +let b = input[0].split(' ')[1]; + +let newA = a[2] + a[1] + a[0]; +let newB = b[2] + b[1] + b[0]; + +console.log(Math.max(Number(newA), Number(newB))); diff --git "a/\353\260\261\354\244\200/Bronze/4344.\342\200\205\355\217\211\352\267\240\354\235\200\342\200\205\353\204\230\352\262\240\354\247\200/README.md" "b/\353\260\261\354\244\200/Bronze/4344.\342\200\205\355\217\211\352\267\240\354\235\200\342\200\205\353\204\230\352\262\240\354\247\200/README.md" new file mode 100644 index 0000000..f62c73c --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/4344.\342\200\205\355\217\211\352\267\240\354\235\200\342\200\205\353\204\230\352\262\240\354\247\200/README.md" @@ -0,0 +1,26 @@ +# [Bronze I] 평균은 넘겠지 - 4344 + +[문제 링크](https://www.acmicpc.net/problem/4344) + +### 성능 요약 + +메모리: 10108 KB, 시간: 188 ms + +### 분류 + +사칙연산, 수학 + +### 문제 설명 + +대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
+ +### 입력 + +첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
+ +둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
+ +### 출력 + +각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10-3이하이면 정답이다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/4344.\342\200\205\355\217\211\352\267\240\354\235\200\342\200\205\353\204\230\352\262\240\354\247\200/\355\217\211\352\267\240\354\235\200\342\200\205\353\204\230\352\262\240\354\247\200.js" "b/\353\260\261\354\244\200/Bronze/4344.\342\200\205\355\217\211\352\267\240\354\235\200\342\200\205\353\204\230\352\262\240\354\247\200/\355\217\211\352\267\240\354\235\200\342\200\205\353\204\230\352\262\240\354\247\200.js" new file mode 100644 index 0000000..1864adc --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/4344.\342\200\205\355\217\211\352\267\240\354\235\200\342\200\205\353\204\230\352\262\240\354\247\200/\355\217\211\352\267\240\354\235\200\342\200\205\353\204\230\352\262\240\354\247\200.js" @@ -0,0 +1,17 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); +let testCases = Number(input[0]); +for (let t=1; t<=testCases; t++){ + let data = input[t].split(' ').map(Number); + let n = data[0]; + let summary = 0; + for (let i=1; i<= n; i++) { + summary +=data[i]; + } + let average = summary / n; + let cnt = 0; + for (let i = 1; i <= n; i++) + if (data[i] > average) cnt += 1; + + console.log(`${(cnt / n*100).toFixed(3)}%`); +} \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/8393.\342\200\205\355\225\251/README.md" "b/\353\260\261\354\244\200/Bronze/8393.\342\200\205\355\225\251/README.md" new file mode 100644 index 0000000..bf4ab4e --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/8393.\342\200\205\355\225\251/README.md" @@ -0,0 +1,24 @@ +# [Bronze V] 합 - 8393 + +[문제 링크](https://www.acmicpc.net/problem/8393) + +### 성능 요약 + +메모리: 9336 KB, 시간: 140 ms + +### 분류 + +구현, 수학 + +### 문제 설명 + +n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.
+ +### 출력 + +1부터 n까지 합을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/8393.\342\200\205\355\225\251/\355\225\251.js" "b/\353\260\261\354\244\200/Bronze/8393.\342\200\205\355\225\251/\355\225\251.js" new file mode 100644 index 0000000..e685bc8 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/8393.\342\200\205\355\225\251/\355\225\251.js" @@ -0,0 +1,6 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let n = Number(input[0]); + +console.log(n*(n+1)/2) \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Bronze/9498.\342\200\205\354\213\234\355\227\230\342\200\205\354\204\261\354\240\201/README.md" "b/\353\260\261\354\244\200/Bronze/9498.\342\200\205\354\213\234\355\227\230\342\200\205\354\204\261\354\240\201/README.md" new file mode 100644 index 0000000..2892aba --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/9498.\342\200\205\354\213\234\355\227\230\342\200\205\354\204\261\354\240\201/README.md" @@ -0,0 +1,24 @@ +# [Bronze V] 시험 성적 - 9498 + +[문제 링크](https://www.acmicpc.net/problem/9498) + +### 성능 요약 + +메모리: 9332 KB, 시간: 124 ms + +### 분류 + +구현 + +### 문제 설명 + +시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
+ +### 출력 + +시험 성적을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Bronze/9498.\342\200\205\354\213\234\355\227\230\342\200\205\354\204\261\354\240\201/\354\213\234\355\227\230\342\200\205\354\204\261\354\240\201.js" "b/\353\260\261\354\244\200/Bronze/9498.\342\200\205\354\213\234\355\227\230\342\200\205\354\204\261\354\240\201/\354\213\234\355\227\230\342\200\205\354\204\261\354\240\201.js" new file mode 100644 index 0000000..f506a01 --- /dev/null +++ "b/\353\260\261\354\244\200/Bronze/9498.\342\200\205\354\213\234\355\227\230\342\200\205\354\204\261\354\240\201/\354\213\234\355\227\230\342\200\205\354\204\261\354\240\201.js" @@ -0,0 +1,14 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +data = Number(input[0]); + +function grade(a) { + if(90 <= a && a <= 100) console.log('A'); + else if (80<= a ) console.log('B'); + else if (70<= a ) console.log('C'); + else if (60<= a ) console.log('D'); + else console.log('F'); +} + +grade(data); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Silver/10814.\342\200\205\353\202\230\354\235\264\354\210\234\342\200\205\354\240\225\353\240\254/README.md" "b/\353\260\261\354\244\200/Silver/10814.\342\200\205\353\202\230\354\235\264\354\210\234\342\200\205\354\240\225\353\240\254/README.md" new file mode 100644 index 0000000..ecb02ef --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/10814.\342\200\205\353\202\230\354\235\264\354\210\234\342\200\205\354\240\225\353\240\254/README.md" @@ -0,0 +1,26 @@ +# [Silver V] 나이순 정렬 - 10814 + +[문제 링크](https://www.acmicpc.net/problem/10814) + +### 성능 요약 + +메모리: 45732 KB, 시간: 448 ms + +### 분류 + +정렬 + +### 문제 설명 + +온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000)
+ +둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다.
+ +### 출력 + +첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/10814.\342\200\205\353\202\230\354\235\264\354\210\234\342\200\205\354\240\225\353\240\254/\353\202\230\354\235\264\354\210\234\342\200\205\354\240\225\353\240\254.js" "b/\353\260\261\354\244\200/Silver/10814.\342\200\205\353\202\230\354\235\264\354\210\234\342\200\205\354\240\225\353\240\254/\353\202\230\354\235\264\354\210\234\342\200\205\354\240\225\353\240\254.js" new file mode 100644 index 0000000..6a47b0d --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/10814.\342\200\205\353\202\230\354\235\264\354\210\234\342\200\205\354\240\225\353\240\254/\353\202\230\354\235\264\354\210\234\342\200\205\354\240\225\353\240\254.js" @@ -0,0 +1,18 @@ +let fs = require('fs'); +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let n = Number(input[0]); +let judge = []; + +for (let i=1; i<=n; i++) { + let age = Number(input[i].split(' ')[0]) + let name = input[i].split(' ')[1] + // judge[i-1] = [age,name] + judge.push([age, name]); +} + +judge.sort((a,b) => a[0] - b[0]); + +let answer = ""; +for (let x of judge) answer += x[0] + " " + x[1] + "\n"; +console.log(answer); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Silver/11004.\342\200\205K\353\262\210\354\247\270\342\200\205\354\210\230/K\353\262\210\354\247\270\342\200\205\354\210\230.js" "b/\353\260\261\354\244\200/Silver/11004.\342\200\205K\353\262\210\354\247\270\342\200\205\354\210\230/K\353\262\210\354\247\270\342\200\205\354\210\230.js" new file mode 100644 index 0000000..4da5f4f --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/11004.\342\200\205K\353\262\210\354\247\270\342\200\205\354\210\230/K\353\262\210\354\247\270\342\200\205\354\210\230.js" @@ -0,0 +1,8 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let [n,k] = input[0].split(' ').map(Number); +let numbers = input[1].split(' ').map(Number); +numbers.sort((a,b) => a-b) + +console.log(numbers[k-1]) \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Silver/11004.\342\200\205K\353\262\210\354\247\270\342\200\205\354\210\230/README.md" "b/\353\260\261\354\244\200/Silver/11004.\342\200\205K\353\262\210\354\247\270\342\200\205\354\210\230/README.md" new file mode 100644 index 0000000..d182135 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/11004.\342\200\205K\353\262\210\354\247\270\342\200\205\354\210\230/README.md" @@ -0,0 +1,26 @@ +# [Silver V] K번째 수 - 11004 + +[문제 링크](https://www.acmicpc.net/problem/11004) + +### 성능 요약 + +메모리: 566624 KB, 시간: 4648 ms + +### 분류 + +정렬 + +### 문제 설명 + +수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 N(1 ≤ N ≤ 5,000,000)과 K (1 ≤ K ≤ N)이 주어진다.
+ +둘째에는 A1, A2, ..., AN이 주어진다. (-109 ≤ Ai ≤ 109)
+ +### 출력 + +A를 정렬했을 때, 앞에서부터 K번째 있는 수를 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/11047.\342\200\205\353\217\231\354\240\204\342\200\2050/README.md" "b/\353\260\261\354\244\200/Silver/11047.\342\200\205\353\217\231\354\240\204\342\200\2050/README.md" new file mode 100644 index 0000000..e3a95d4 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/11047.\342\200\205\353\217\231\354\240\204\342\200\2050/README.md" @@ -0,0 +1,28 @@ +# [Silver IV] 동전 0 - 11047 + +[문제 링크](https://www.acmicpc.net/problem/11047) + +### 성능 요약 + +메모리: 9616 KB, 시간: 124 ms + +### 분류 + +그리디 알고리즘 + +### 문제 설명 + +준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.
+ +동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)
+ +둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
+ +### 출력 + +첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/11047.\342\200\205\353\217\231\354\240\204\342\200\2050/\353\217\231\354\240\204\342\200\2050.js" "b/\353\260\261\354\244\200/Silver/11047.\342\200\205\353\217\231\354\240\204\342\200\2050/\353\217\231\354\240\204\342\200\2050.js" new file mode 100644 index 0000000..efb0c5f --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/11047.\342\200\205\353\217\231\354\240\204\342\200\2050/\353\217\231\354\240\204\342\200\2050.js" @@ -0,0 +1,16 @@ +let fs = require('fs'); +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let n = Number(input[0].split(' ')[0]); +let k = Number(input[0].split(' ')[1]); + +let arr = []; +for (let i=1; i <= n; i++) arr.push(Number(input[i])); + +let cnt = 0; +for (let i = n-1; i >= 0; i--) { + cnt += parseInt(k / arr[i]); + k %= arr[i]; +} + +console.log(cnt); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Silver/11399.\342\200\205ATM/ATM.js" "b/\353\260\261\354\244\200/Silver/11399.\342\200\205ATM/ATM.js" new file mode 100644 index 0000000..7dfbe16 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/11399.\342\200\205ATM/ATM.js" @@ -0,0 +1,14 @@ +let fs = require('fs'); +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let n = Number(input[0]); +let arr = input[1].split(' ').map(Number); +arr.sort((a,b) => a-b) + +let cnt = 0; +for(let i=0; i사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게 된다. 4번 사람은 3+1+4+3 = 11분, 5번 사람은 3+1+4+3+2 = 13분이 걸리게 된다. 이 경우에 각 사람이 돈을 인출하는데 필요한 시간의 합은 3+4+8+11+13 = 39분이 된다.
+ +줄을 [2, 5, 1, 4, 3] 순서로 줄을 서면, 2번 사람은 1분만에, 5번 사람은 1+2 = 3분, 1번 사람은 1+2+3 = 6분, 4번 사람은 1+2+3+3 = 9분, 3번 사람은 1+2+3+3+4 = 13분이 걸리게 된다. 각 사람이 돈을 인출하는데 필요한 시간의 합은 1+3+6+9+13 = 32분이다. 이 방법보다 더 필요한 시간의 합을 최소로 만들 수는 없다.
+ +줄을 서 있는 사람의 수 N과 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어졌을 때, 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
+ +### 출력 + +첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/11650.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" "b/\353\260\261\354\244\200/Silver/11650.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..f6a12a5 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/11650.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/README.md" @@ -0,0 +1,24 @@ +# [Silver V] 좌표 정렬하기 - 11650 + +[문제 링크](https://www.acmicpc.net/problem/11650) + +### 성능 요약 + +메모리: 60692 KB, 시간: 608 ms + +### 분류 + +정렬 + +### 문제 설명 + +2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
+ +### 출력 + +첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/11650.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.js" "b/\353\260\261\354\244\200/Silver/11650.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.js" new file mode 100644 index 0000000..eb0fa5b --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/11650.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260/\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260.js" @@ -0,0 +1,21 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let n = Number(input[0]); +let data = []; +for (let i=1; i <=n; i++) { + let [x,y] = input[i].split(' ').map(Number); + data.push([x,y]); +} + +function compare (a,b) { + if( a[0] != b[0]) return a[0]-b[0] + else return a[1] -b[1] +} +data.sort(compare); + +let answer = "" +for (let point of data) { + answer += point[0] + " " + point[1] + "\n" +} +console.log(answer) \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Silver/11651.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/README.md" "b/\353\260\261\354\244\200/Silver/11651.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/README.md" new file mode 100644 index 0000000..9054ff2 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/11651.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/README.md" @@ -0,0 +1,24 @@ +# [Silver V] 좌표 정렬하기 2 - 11651 + +[문제 링크](https://www.acmicpc.net/problem/11651) + +### 성능 요약 + +메모리: 60392 KB, 시간: 508 ms + +### 분류 + +정렬 + +### 문제 설명 + +2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
+ +### 출력 + +첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/11651.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052.js" "b/\353\260\261\354\244\200/Silver/11651.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052.js" new file mode 100644 index 0000000..9d7cb66 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/11651.\342\200\205\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/\354\242\214\355\221\234\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052.js" @@ -0,0 +1,21 @@ +let fs = require('fs'); +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let n = Number(input[0]); +let data = []; +for (let i =1; i <= n; i++) { + let [x, y] = input[i].split(' ').map(Number); + data.push([x, y]); +} + +function compare (a, b) { + if (a[1] != b[1]) return a[1] - b[1]; + else return a[0] - b[0]; +} +data.sort(compare); + +let answer = ""; +for (let point of data) { + answer += point[0] + " " + point[1] + "\n"; +} +console.log(answer) \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Silver/1181.\342\200\205\353\213\250\354\226\264\342\200\205\354\240\225\353\240\254/README.md" "b/\353\260\261\354\244\200/Silver/1181.\342\200\205\353\213\250\354\226\264\342\200\205\354\240\225\353\240\254/README.md" new file mode 100644 index 0000000..7a58cb4 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/1181.\342\200\205\353\213\250\354\226\264\342\200\205\354\240\225\353\240\254/README.md" @@ -0,0 +1,31 @@ +# [Silver V] 단어 정렬 - 1181 + +[문제 링크](https://www.acmicpc.net/problem/1181) + +### 성능 요약 + +메모리: 19416 KB, 시간: 1316 ms + +### 분류 + +정렬, 문자열 + +### 문제 설명 + +알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.
+ +단, 중복된 단어는 하나만 남기고 제거해야 한다.
+ +### 입력 + +첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
+ +### 출력 + +조건에 따라 정렬하여 단어들을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/1181.\342\200\205\353\213\250\354\226\264\342\200\205\354\240\225\353\240\254/\353\213\250\354\226\264\342\200\205\354\240\225\353\240\254.js" "b/\353\260\261\354\244\200/Silver/1181.\342\200\205\353\213\250\354\226\264\342\200\205\354\240\225\353\240\254/\353\213\250\354\226\264\342\200\205\354\240\225\353\240\254.js" new file mode 100644 index 0000000..c9c439f --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/1181.\342\200\205\353\213\250\354\226\264\342\200\205\354\240\225\353\240\254/\353\213\250\354\226\264\342\200\205\354\240\225\353\240\254.js" @@ -0,0 +1,42 @@ +let fs = require('fs'); +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + + let n = Number(input[0]); +/**let data = [] +for(let i=1; i<=n; i++){ + data = [...data, input[i]] +} +let set = new Set(data); +let compare = (a,b)=>{ + if(a.length < b.length) a-b; + else a-b; +} +set.sort(compare) + +let answer = "" +for( let word of set) { + answer = word + "\n" +} +console.log(answer); +**/ + +let arr = []; +for(let i=1; i<= n; i++) { + arr.push(input[i]); +} + +arr = [...new Set(arr)]; + +arr.sort((a,b) => { + if(a.length != b.length) return a.length - b.length; + else { + if(ab) return 1; + } +}); + +for( let x of arr) { + console.log(x); +} + + diff --git "a/\353\260\261\354\244\200/Silver/1427.\342\200\205\354\206\214\355\212\270\354\235\270\354\202\254\354\235\264\353\223\234/README.md" "b/\353\260\261\354\244\200/Silver/1427.\342\200\205\354\206\214\355\212\270\354\235\270\354\202\254\354\235\264\353\223\234/README.md" new file mode 100644 index 0000000..a483ac5 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/1427.\342\200\205\354\206\214\355\212\270\354\235\270\354\202\254\354\235\264\353\223\234/README.md" @@ -0,0 +1,24 @@ +# [Silver V] 소트인사이드 - 1427 + +[문제 링크](https://www.acmicpc.net/problem/1427) + +### 성능 요약 + +메모리: 9336 KB, 시간: 124 ms + +### 분류 + +정렬, 문자열 + +### 문제 설명 + +배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
+ +### 입력 + +첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
+ +### 출력 + +첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/1427.\342\200\205\354\206\214\355\212\270\354\235\270\354\202\254\354\235\264\353\223\234/\354\206\214\355\212\270\354\235\270\354\202\254\354\235\264\353\223\234.js" "b/\353\260\261\354\244\200/Silver/1427.\342\200\205\354\206\214\355\212\270\354\235\270\354\202\254\354\235\264\353\223\234/\354\206\214\355\212\270\354\235\270\354\202\254\354\235\264\353\223\234.js" new file mode 100644 index 0000000..269a03b --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/1427.\342\200\205\354\206\214\355\212\270\354\235\270\354\202\254\354\235\264\353\223\234/\354\206\214\355\212\270\354\235\270\354\202\254\354\235\264\353\223\234.js" @@ -0,0 +1,16 @@ +let fs = require('fs'); +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let number = input[0]; +let cnt = Array(10).fill(0); + +for(let x of number) { + cnt[Number(x)]++; +} + +let answer = ""; +for(let i = 9; i>= 0; i--) { + for (let j=0; j < cnt[i]; j++) answer += i + ""; +} + +console.log(answer); \ No newline at end of file diff --git "a/\353\260\261\354\244\200/Silver/1541.\342\200\205\354\236\203\354\226\264\353\262\204\353\246\260\342\200\205\352\264\204\355\230\270/README.md" "b/\353\260\261\354\244\200/Silver/1541.\342\200\205\354\236\203\354\226\264\353\262\204\353\246\260\342\200\205\352\264\204\355\230\270/README.md" new file mode 100644 index 0000000..93193be --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/1541.\342\200\205\354\236\203\354\226\264\353\262\204\353\246\260\342\200\205\352\264\204\355\230\270/README.md" @@ -0,0 +1,28 @@ +# [Silver II] 잃어버린 괄호 - 1541 + +[문제 링크](https://www.acmicpc.net/problem/1541) + +### 성능 요약 + +메모리: 9348 KB, 시간: 124 ms + +### 분류 + +그리디 알고리즘, 수학, 파싱, 문자열 + +### 문제 설명 + +세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
+ +그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.
+ +괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.
+ +### 출력 + +첫째 줄에 정답을 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/1541.\342\200\205\354\236\203\354\226\264\353\262\204\353\246\260\342\200\205\352\264\204\355\230\270/\354\236\203\354\226\264\353\262\204\353\246\260\342\200\205\352\264\204\355\230\270.js" "b/\353\260\261\354\244\200/Silver/1541.\342\200\205\354\236\203\354\226\264\353\262\204\353\246\260\342\200\205\352\264\204\355\230\270/\354\236\203\354\226\264\353\262\204\353\246\260\342\200\205\352\264\204\355\230\270.js" new file mode 100644 index 0000000..69c16c5 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/1541.\342\200\205\354\236\203\354\226\264\353\262\204\353\246\260\342\200\205\352\264\204\355\230\270/\354\236\203\354\226\264\353\262\204\353\246\260\342\200\205\352\264\204\355\230\270.js" @@ -0,0 +1,12 @@ +let fs = require('fs'); +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let arr = input[0].split('-'); +let sum = 0; +for (let i = 0; i수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.
+ +Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다.
+ +X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.
+ +### 입력 + +첫째 줄에 N이 주어진다.
+ +둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.
+ +### 출력 + +첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/18870.\342\200\205\354\242\214\355\221\234\342\200\205\354\225\225\354\266\225/\354\242\214\355\221\234\342\200\205\354\225\225\354\266\225.js" "b/\353\260\261\354\244\200/Silver/18870.\342\200\205\354\242\214\355\221\234\342\200\205\354\225\225\354\266\225/\354\242\214\355\221\234\342\200\205\354\225\225\354\266\225.js" new file mode 100644 index 0000000..5da3c70 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/18870.\342\200\205\354\242\214\355\221\234\342\200\205\354\225\225\354\266\225/\354\242\214\355\221\234\342\200\205\354\225\225\354\266\225.js" @@ -0,0 +1,18 @@ +let fs = require('fs'); +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let n = Number(input[0]); +let arr = input[1].split(' ').map(Number); + +let ua = [...new Set(arr)]; +ua.sort((a,b) => a - b); + +let myMap = new Map(); +for (let i = 0; i < ua.length; i++) { + myMap.set(ua[i], i); +} + +answer = ""; +for (x of arr) answer += myMap.get(x) + " "; +console.log(answer); + diff --git "a/\353\260\261\354\244\200/Silver/2751.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/README.md" "b/\353\260\261\354\244\200/Silver/2751.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/README.md" new file mode 100644 index 0000000..0b6bd83 --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/2751.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/README.md" @@ -0,0 +1,24 @@ +# [Silver V] 수 정렬하기 2 - 2751 + +[문제 링크](https://www.acmicpc.net/problem/2751) + +### 성능 요약 + +메모리: 215112 KB, 시간: 1428 ms + +### 분류 + +정렬 + +### 문제 설명 + +N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
+ +### 입력 + +첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
+ +### 출력 + +첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
+ diff --git "a/\353\260\261\354\244\200/Silver/2751.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052.js" "b/\353\260\261\354\244\200/Silver/2751.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052.js" new file mode 100644 index 0000000..0526add --- /dev/null +++ "b/\353\260\261\354\244\200/Silver/2751.\342\200\205\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052/\354\210\230\342\200\205\354\240\225\353\240\254\355\225\230\352\270\260\342\200\2052.js" @@ -0,0 +1,19 @@ +let fs = require('fs') +let input = fs.readFileSync('/dev/stdin').toString().split('\n'); + +let n = Number(input[0]); + +let arr = []; +for(let i=1; i<=n; i++){ + arr.push(Number(input[i])) +} + +let sorted = arr.sort((a,b) => a-b) + +let answer = ""; + +for (let i=0; i머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요.
balls ≤ 30share ≤ 30share ≤ balls| balls | +share | +result | +
|---|---|---|
| 3 | +2 | +3 | +
| 5 | +3 | +10 | +
입출력 예 #1
+ +
입출력 예 #2
+ +
※ 공지 - 2022년 10월 11일 제한 사항 및 테스트케이스가 수정되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120840.\342\200\205\352\265\254\354\212\254\354\235\204\342\200\205\353\202\230\353\210\204\353\212\224\342\200\205\352\262\275\354\232\260\354\235\230\342\200\205\354\210\230/\352\265\254\354\212\254\354\235\204\342\200\205\353\202\230\353\210\204\353\212\224\342\200\205\352\262\275\354\232\260\354\235\230\342\200\205\354\210\230.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120840.\342\200\205\352\265\254\354\212\254\354\235\204\342\200\205\353\202\230\353\210\204\353\212\224\342\200\205\352\262\275\354\232\260\354\235\230\342\200\205\354\210\230/\352\265\254\354\212\254\354\235\204\342\200\205\353\202\230\353\210\204\353\212\224\342\200\205\352\262\275\354\232\260\354\235\230\342\200\205\354\210\230.js" new file mode 100644 index 0000000..056875a --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120840.\342\200\205\352\265\254\354\212\254\354\235\204\342\200\205\353\202\230\353\210\204\353\212\224\342\200\205\352\262\275\354\232\260\354\235\230\342\200\205\354\210\230/\352\265\254\354\212\254\354\235\204\342\200\205\353\202\230\353\210\204\353\212\224\342\200\205\352\262\275\354\232\260\354\235\230\342\200\205\354\210\230.js" @@ -0,0 +1,11 @@ +function solution(balls, share) { + if (balls - share === 1) return balls; + if (balls === share) return 1; + share = Math.min(share, balls - share); + let answer = 1n; + for (let i = 0; i < share; i++) { + answer *= BigInt(balls - i); + answer /= BigInt(i + 1); + } + return Number(answer); +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120868.\342\200\205\354\202\274\352\260\201\355\230\225\354\235\230\342\200\205\354\231\204\354\204\261\354\241\260\352\261\264\342\200\205\357\274\2102\357\274\211/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120868.\342\200\205\354\202\274\352\260\201\355\230\225\354\235\230\342\200\205\354\231\204\354\204\261\354\241\260\352\261\264\342\200\205\357\274\2102\357\274\211/README.md" new file mode 100644 index 0000000..90371ee --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120868.\342\200\205\354\202\274\352\260\201\355\230\225\354\235\230\342\200\205\354\231\204\354\204\261\354\241\260\352\261\264\342\200\205\357\274\2102\357\274\211/README.md" @@ -0,0 +1,107 @@ +# [level 0] 삼각형의 완성조건 (2) - 120868 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/120868) + +### 성능 요약 + +메모리: 33.5 MB, 시간: 0.04 ms + +### 구분 + +코딩테스트 연습 > 코딩테스트 입문 + +### 채점결과 + +정확성: 100.0선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
+ +삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.
sides의 원소는 자연수입니다.sides의 길이는 2입니다.sides의 원소 ≤ 1,000| sides | +result | +
|---|---|
| [1, 2] | +1 | +
| [3, 6] | +5 | +
| [11, 7] | +13 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요.
spell과 dic의 원소는 알파벳 소문자로만 이루어져있습니다.spell의 크기 ≤ 10spell의 원소의 길이는 1입니다.dic의 크기 ≤ 10dic의 원소의 길이 ≤ 10spell의 원소를 모두 사용해 단어를 만들어야 합니다.spell의 원소를 모두 사용해 만들 수 있는 단어는 dic에 두 개 이상 존재하지 않습니다.dic과 spell 모두 중복된 원소를 갖지 않습니다.| spell | +dic | +result | +
|---|---|---|
| ["p", "o", "s"] | +["sod", "eocd", "qixm", "adio", "soo"] | +2 | +
| ["z", "d", "x"] | +["def", "dww", "dzx", "loveaw"] | +1 | +
| ["s", "o", "m", "d"] | +["moos", "dzx", "smm", "sunmmo", "som"] | +2 | +
입출력 예 #1
+ +dic에 존재하지 않습니다. 따라서 2를 return합니다.입출력 예 #2
+ +dic에 존재합니다. 따라서 1을 return합니다.입출력 예 #3
+ +dic에 존재하지 않습니다. 따라서 2을 return합니다.spell의 원소를 모두 사용해야 하기 때문에 정답이 아닙니다.소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. 유한소수가 되기 위한 분수의 조건은 다음과 같습니다.
+ +두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요.
a, b는 정수a ≤ 1,000b ≤ 1,000| a | +b | +result | +
|---|---|---|
| 7 | +20 | +1 | +
| 11 | +22 | +1 | +
| 12 | +21 | +2 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +※ 공지 - 2022년 11월 10일 테스트 케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120878.\342\200\205\354\234\240\355\225\234\354\206\214\354\210\230\342\200\205\355\214\220\353\263\204\355\225\230\352\270\260/\354\234\240\355\225\234\354\206\214\354\210\230\342\200\205\355\214\220\353\263\204\355\225\230\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120878.\342\200\205\354\234\240\355\225\234\354\206\214\354\210\230\342\200\205\355\214\220\353\263\204\355\225\230\352\270\260/\354\234\240\355\225\234\354\206\214\354\210\230\342\200\205\355\214\220\353\263\204\355\225\230\352\270\260.js" new file mode 100644 index 0000000..add28f2 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120878.\342\200\205\354\234\240\355\225\234\354\206\214\354\210\230\342\200\205\355\214\220\353\263\204\355\225\230\352\270\260/\354\234\240\355\225\234\354\206\214\354\210\230\342\200\205\355\214\220\353\263\204\355\225\230\352\270\260.js" @@ -0,0 +1,31 @@ +function solution(a, b) { + // a,b 의 공약수가 없도록 최대공약수로 둘 다 나눔 + function gcd(a, b) { + while (b !== 0) { + let temp = b; + b = a % b; + a = temp; + } + return a; + } + b = b/gcd(a,b) + // 분모 b가 2와 5만으로 이루어지는지 판별 + const divisors = []; + + for (let i = 1; i <= Math.sqrt(b); i++) { + if (b % i === 0) { + divisors.push(i); + if (i !== b / i) { + divisors.push(b / i); + } + } + } + while (b % 2 === 0) { + b /= 2; + } + while (b % 5 === 0) { + b /= 5; + } + + return b === 1 ? 1 : 2; +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120882.\342\200\205\353\223\261\354\210\230\342\200\205\353\247\244\352\270\260\352\270\260/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120882.\342\200\205\353\223\261\354\210\230\342\200\205\353\247\244\352\270\260\352\270\260/README.md" new file mode 100644 index 0000000..75af0e0 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/120882.\342\200\205\353\223\261\354\210\230\342\200\205\353\247\244\352\270\260\352\270\260/README.md" @@ -0,0 +1,73 @@ +# [level 0] 등수 매기기 - 120882 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/120882) + +### 성능 요약 + +메모리: 33.5 MB, 시간: 0.19 ms + +### 구분 + +코딩테스트 연습 > 코딩테스트 입문 + +### 채점결과 + +정확성: 100.0영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요.
score[0], score[1] ≤ 100score의 길이 ≤ 10score의 원소 길이는 2입니다.score는 중복된 원소를 갖지 않습니다.| score | +result | +
|---|---|
| [[80, 70], [90, 50], [40, 70], [50, 80]] | +[1, 2, 4, 3] | +
| [[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]] | +[4, 4, 6, 2, 2, 1, 7] | +
입출력 예 #1
+ +입출력 예 #2
+ +이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.
bin1, bin2의 길이 ≤ 10bin1과 bin2는 0과 1로만 이루어져 있습니다.bin1과 bin2는 "0"을 제외하고 0으로 시작하지 않습니다.| bin1 | +bin2 | +result | +
|---|---|---|
| "10" | +"11" | +"101" | +
| "1001" | +"1111" | +"11000" | +
입출력 예 #1
+ +입출력 예 #2
+ +영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
numbers는 소문자로만 구성되어 있습니다.numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.numbers의 길이 ≤ 50numbers의 맨 앞에 올 수 없습니다.| numbers | +result | +
|---|---|
| "onetwothreefourfivesixseveneightnine" | +123456789 | +
| "onefourzerosixseven" | +14067 | +
입출력 예 #1
+ +입출력 예 #1
+ +2차원 정수 배열 board와 정수 k가 주어집니다.
i + j <= k를 만족하는 모든 (i, j)에 대한 board[i][j]의 합을 return 하는 solution 함수를 완성해 주세요.
| board | +k | +result | +
|---|---|---|
| [[0, 1, 2],[1, 2, 3],[2, 3, 4],[3, 4, 5]] | +2 | +8 | +
입출력 예 #1
+ +board를 표로 나타내면 다음과 같습니다.| i \ j | +0 | +1 | +2 | +
|---|---|---|---|
| 0 | +0 | +1 | +2 | +
| 1 | +1 | +2 | +3 | +
| 2 | +2 | +3 | +4 | +
| 3 | +3 | +4 | +5 | +
i + j가 2보다 작거나 같은 항들의 합은 0 + 1 + 2 + 1 + 2 + 2 = 8이므로 8을 return 합니다.이차원 정수 배열 arr이 매개변수로 주어집니다. arr의 행의 수가 더 많다면 열의 수가 행의 수와 같아지도록 각 행의 끝에 0을 추가하고, 열의 수가 더 많다면 행의 수가 열의 수와 같아지도록 각 열의 끝에 0을 추가한 이차원 배열을 return 하는 solution 함수를 작성해 주세요.
arr의 길이 ≤ 100arr의 원소의 길이 ≤ 100
+
+arr의 모든 원소의 길이는 같습니다.arr의 원소의 원소 ≤ 1,000| arr | +result | +
|---|---|
| [[572, 22, 37], [287, 726, 384], [85, 137, 292], [487, 13, 876]] | +[[572, 22, 37, 0], [287, 726, 384, 0], [85, 137, 292, 0], [487, 13, 876, 0]] | +
| [[57, 192, 534, 2], [9, 345, 192, 999]] | +[[57, 192, 534, 2], [9, 345, 192, 999], [0, 0, 0, 0], [0, 0, 0, 0]] | +
| [[1, 2], [3, 4]] | +[[1, 2], [3, 4]] | +
입출력 예 #1
+ +arr은 행의 수가 4, 열의 수가 3입니다. 행의 수가 더 많으므로 열의 수를 4로 만들기 위해 arr의 각 행의 끝에 0을 추가한 이차원 배열 [[572, 22, 37, 0], [287, 726, 384, 0], [85, 137, 292, 0], [487, 13, 876, 0]]를 return 합니다.입출력 예 #2
+ +arr은 행의 수가 2, 열의 수가 4입니다. 열의 수가 더 많으므로 행의 수를 4로 만들기 위해 arr의 각 열의 끝에 0을 추가한 이차원 배열 [[57, 192, 534, 2], [9, 345, 192, 999], [0, 0, 0, 0], [0, 0, 0, 0]]을 return 합니다.입출력 예 #3
+ +arr은 행의 수와 열의 수가 2로 같습니다. 따라서 0을 추가하지 않고 [[1, 2], [3, 4]]을 return 합니다.n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
arr[i][j] = arr[j][i]arr의 길이 = arr의 원소의 길이 ≤ 100arr의 원소의 원소 ≤ 1,000arr의 원소의 길이는 같습니다.| arr | +result | +
|---|---|
| [[5, 192, 33], [192, 72, 95], [33, 95, 999]] | +1 | +
| [[19, 498, 258, 587], [63, 93, 7, 754], [258, 7, 1000, 723], [587, 754, 723, 81]] | +0 | +
입출력 예 #1
+ +예제 1번에서 문제의 조건이 잘 보이도록 표를 만들면 다음과 같습니다.
+| i | +j | +arr[i][j] | +arr[j][i] | +
|---|---|---|---|
| 0 | +0 | +5 | +5 | +
| 0 | +1 | +192 | +192 | +
| 0 | +2 | +33 | +33 | +
| 1 | +0 | +192 | +192 | +
| 1 | +1 | +72 | +72 | +
| 1 | +2 | +95 | +95 | +
| 2 | +0 | +33 | +33 | +
| 2 | +1 | +95 | +95 | +
| 2 | +2 | +999 | +999 | +
조건을 만족하므로 1을 return 합니다.
입출력 예 #2
+ +arr에서 arr[0][1] = 498 ≠ 63 = arr[1][0]이므로 조건을 만족하지 않습니다. 따라서 0을 return 합니다.정수 n이 매개변수로 주어질 때, 다음과 같은 n × n 크기의 이차원 배열 arr를 return 하는 solution 함수를 작성해 주세요.
n)의 값은 i = j라면 1, 아니라면 0입니다.n ≤ 100| n | +result | +
|---|---|
| 3 | +[[1, 0, 0], [0, 1, 0], [0, 0, 1]] | +
| 6 | +[[1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1]] | +
| 1 | +[[1]] | +
입출력 예 #1
+ +예제 1번의 n의 값은 3으로 다음과 같이 2차원 배열을 채울 수 있습니다.
| i \ j | +0 | +1 | +2 | +
|---|---|---|---|
| 0 | +1 | +0 | +0 | +
| 1 | +0 | +1 | +0 | +
| 2 | +0 | +0 | +1 | +
따라서 [[1, 0, 0], [0, 1, 0], [0, 0, 1]]을 return 합니다.
입출력 예 #2
+ +예제 2번의 n의 값은 6으로 다음과 같이 2차원 배열을 채울 수 있습니다.
| i \ j | +0 | +1 | +2 | +3 | +4 | +5 | +
|---|---|---|---|---|---|---|
| 0 | +1 | +0 | +0 | +0 | +0 | +0 | +
| 1 | +0 | +1 | +0 | +0 | +0 | +0 | +
| 2 | +0 | +0 | +1 | +0 | +0 | +0 | +
| 3 | +0 | +0 | +0 | +1 | +0 | +0 | +
| 4 | +0 | +0 | +0 | +0 | +1 | +0 | +
| 5 | +0 | +0 | +0 | +0 | +0 | +1 | +
따라서 [[1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1]]을 return 합니다.
입출력 예 #3
+ +예제 1번의 n의 값은 1이고 다음과 같이 2차원 배열을 채울 수 있습니다.
| i \ j | +0 | +
|---|---|
| 0 | +1 | +
따라서 [[1]]을 return 합니다.
알파벳 소문자로 이루어진 문자열 myString이 주어집니다. 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return 하는 solution 함수를 완성해 주세요.
myString ≤ 100,000
+
+myString은 알파벳 소문자로 이루어진 문자열입니다.| myString | +result | +
|---|---|
| "abcdevwxyz" | +"lllllvwxyz" | +
| "jjnnllkkmm" | +"llnnllllmm" | +
입출력 예 #1
+ +입출력 예 #2
+ +직사각형 형태의 그림 파일이 있고, 이 그림 파일은 1 × 1 크기의 정사각형 크기의 픽셀로 이루어져 있습니다. 이 그림 파일을 나타낸 문자열 배열 picture과 정수 k가 매개변수로 주어질 때, 이 그림 파일을 가로 세로로 k배 늘린 그림 파일을 나타내도록 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
picture의 길이 ≤ 20picture의 원소의 길이 ≤ 20picture의 원소의 길이는 같습니다.picture의 원소는 '.'과 'x'로 이루어져 있습니다.k ≤ 10| picture | +k | +result | +
|---|---|---|
| [".xx...xx.", "x..x.x..x", "x...x...x", ".x.....x.", "..x...x..", "...x.x...", "....x...."] | +2 | +["..xxxx......xxxx..", "..xxxx......xxxx..", "xx....xx..xx....xx", "xx....xx..xx....xx", "xx......xx......xx", "xx......xx......xx", "..xx..........xx..", "..xx..........xx..", "....xx......xx....", "....xx......xx....", "......xx..xx......", "......xx..xx......", "........xx........", "........xx........"] | +
| ["x.x", ".x.", "x.x"] | +3 | +["xxx...xxx", "xxx...xxx", "xxx...xxx", "...xxx...", "...xxx...", "...xxx...", "xxx...xxx", "xxx...xxx", "xxx...xxx"] | +
입출력 예 #1
+ +예제 1번의 picture는 다음과 같습니다.
.xx...xx.
+x..x.x..x
+x...x...x
+.x.....x.
+..x...x..
+...x.x...
+....x....
+이를 가로 세로로 k배, 즉 2배 확대하면 그림 파일은 다음과 같습니다.
..xxxx......xxxx..
+..xxxx......xxxx..
+xx....xx..xx....xx
+xx....xx..xx....xx
+xx......xx......xx
+xx......xx......xx
+..xx..........xx..
+..xx..........xx..
+....xx......xx....
+....xx......xx....
+......xx..xx......
+......xx..xx......
+........xx........
+........xx........
+따라서 ["..xxxx......xxxx..", "..xxxx......xxxx..", "xx....xx..xx....xx", "xx....xx..xx....xx", "xx......xx......xx", "xx......xx......xx", "..xx..........xx..", "..xx..........xx..", "....xx......xx....", "....xx......xx....", "......xx..xx......", "......xx..xx......", "........xx........", "........xx........"]를 return 합니다.
입출력 예 #2
+ +예제 2번의 picture는 다음과 같습니다.
x.x
+.x.
+x.x
+이를 가로 세로로 k배, 즉 3배 확대하면 그림 파일은 다음과 같습니다.
xxx...xxx
+xxx...xxx
+xxx...xxx
+...xxx...
+...xxx...
+...xxx...
+xxx...xxx
+xxx...xxx
+xxx...xxx
+따라서 ["xxx...xxx", "xxx...xxx", "xxx...xxx", "...xxx...", "...xxx...", "...xxx...", "xxx...xxx", "xxx...xxx", "xxx...xxx"]를 return 합니다.
어떤 문자열 A가 다른 문자열 B안에 속하면 A를 B의 부분 문자열이라고 합니다. 예를 들어 문자열 "abc"는 문자열 "aabcc"의 부분 문자열입니다.
+ +문자열 str1과 str2가 주어질 때, str1이 str2의 부분 문자열이라면 1을 부분 문자열이 아니라면 0을 return하도록 solution 함수를 완성해주세요.
str1 ≤ str2 ≤ 20str1과 str2는 영어 소문자로만 이루어져 있습니다.| str1 | +str2 | +result | +
|---|---|---|
| "abc" | +"aabcc" | +1 | +
| "tbt" | +"tbbttb" | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +부분 문자열이란 문자열에서 연속된 일부분에 해당하는 문자열을 의미합니다. 예를 들어, 문자열 "ana", "ban", "anana", "banana", "n"는 모두 문자열 "banana"의 부분 문자열이지만, "aaa", "bnana", "wxyz"는 모두 "banana"의 부분 문자열이 아닙니다.
+ +문자열 my_string과 target이 매개변수로 주어질 때, target이 문자열 my_string의 부분 문자열이라면 1을, 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
my_string의 길이 ≤ 100my_string은 영소문자로만 이루어져 있습니다.target의 길이 ≤ 100target은 영소문자로만 이루어져 있습니다.| my_string | +target | +result | +
|---|---|---|
| "banana" | +"ana" | +1 | +
| "banana" | +"wxyz" | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.
arr의 길이 ≤ 100arr의 원소 ≤ 1,000arr의 원소는 모두 서로 다릅니다.delete_list의 길이 ≤ 100delete_list의 원소 ≤ 1,000delete_list의 원소는 모두 서로 다릅니다.| arr | +delete_list | +result | +
|---|---|---|
| [293, 1000, 395, 678, 94] | +[94, 777, 104, 1000, 1, 12] | +[293, 395, 678] | +
| [110, 66, 439, 785, 1] | +[377, 823, 119, 43] | +[110, 66, 439, 785, 1] | +
입출력 예 #1
+ +arr의 원소 중 1000과 94가 delete_list에 있으므로 이 두 원소를 삭제한 [293, 395, 678]을 return 합니다.입출력 예 #2
+ +arr의 원소 중 delete_list에 있는 원소는 없습니다. 따라서 arr 그대로인 [110, 66, 439, 785, 1]을 return 합니다.0 이상의 두 정수가 문자열 a, b로 주어질 때, a + b의 값을 문자열로 return 하는 solution 함수를 작성해 주세요.
a의 길이 ≤ 100,000b의 길이 ≤ 100,000a와 b는 숫자로만 이루어져 있습니다.a와 b는 정수 0이 아니라면 0으로 시작하지 않습니다.| a | +b | +result | +
|---|---|---|
| "582" | +"734" | +"1316" | +
| "18446744073709551615" | +"287346502836570928366" | +"305793246910280479981" | +
| "0" | +"0" | +"0" | +
입출력 예 #1
+ +a, b는 각각 582, 734이고 582 + 734 = 1316입니다. 따라서 "1316"을 return 합니다.입출력 예 #2
+ +a, b는 각각 18446744073709551615, 287346502836570928366이고 18446744073709551615 + 287346502836570928366 = 305793246910280479981입니다. 따라서 "305793246910280479981"을 return 합니다.입출력 예 #3
+ +a, b는 각각 0, 0이고 0 + 0 = 0입니다. 따라서 "0"을 return 합니다.정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.
n_str ≤ 10n_str이 "0"으로만 이루어진 경우는 없습니다.| n_str | +result | +
|---|---|
| "0010" | +"10" | +
| "854020" | +"854020" | +
입출력 예 #1
+ +입출력 예 #2
+ +0번부터 n - 1번까지 n명의 학생 중 3명을 선발하는 전국 대회 선발 고사를 보았습니다. 등수가 높은 3명을 선발해야 하지만, 개인 사정으로 전국 대회에 참여하지 못하는 학생들이 있어 참여가 가능한 학생 중 등수가 높은 3명을 선발하기로 했습니다.
+ +각 학생들의 선발 고사 등수를 담은 정수 배열 rank와 전국 대회 참여 가능 여부가 담긴 boolean 배열 attendance가 매개변수로 주어집니다. 전국 대회에 선발된 학생 번호들을 등수가 높은 순서대로 각각 a, b, c번이라고 할 때 10000 × a + 100 × b + c를 return 하는 solution 함수를 작성해 주세요.
rank의 길이 = attendance의 길이 ≤ 100rank[i]는 i번 학생의 선발 고사 등수를 의미합니다.rank의 원소는 1부터 n까지의 정수로 모두 서로 다릅니다.attendance[i]는 i번 학생의 전국 대회 참석 가능 여부를 나타냅니다.
+
+attendance[i]가 true라면 참석 가능, false면 참석 불가능을 의미합니다.attendance의 원소 중 적어도 3개는 true입니다.| rank | +attendance | +result | +
|---|---|---|
| [3, 7, 2, 5, 4, 6, 1] | +[false, true, true, true, true, false, false] | +20403 | +
| [1, 2, 3] | +[true, true, true] | +102 | +
| [6, 1, 5, 2, 3, 4] | +[true, false, true, false, false, true] | +50200 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
num_list의 길이 ≤ 30num_list의 원소 ≤ 100| num_list | +result | +
|---|---|
| [12, 4, 15, 46, 38, 1, 14, 56, 32, 10] | +[15, 32, 38, 46, 56] | +
입출력 예 #1
+ +정수 배열 arr과 정수 n이 매개변수로 주어집니다. arr의 길이가 홀수라면 arr의 모든 짝수 인덱스 위치에 n을 더한 배열을, arr의 길이가 짝수라면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 return 하는 solution 함수를 작성해 주세요.
arr의 길이 ≤ 1,000arr의 원소 ≤ 1,000n ≤ 1,000| arr | +n | +result | +
|---|---|---|
| [49, 12, 100, 276, 33] | +27 | +[76, 12, 127, 276, 60] | +
| [444, 555, 666, 777] | +100 | +[444, 655, 666, 877] | +
입출력 예 #1
+ +arr의 길이는 5로 홀수입니다. 따라서 arr의 짝수 인덱스 0, 2, 4에 주어진 n 값인 27을 더하면 [76, 12, 127, 276, 60]이 됩니다. 따라서 [76, 12, 127, 276, 60]를 return 합니다.입출력 예 #1
+ +arr의 길이는 4로 짝수입니다. 따라서 arr의 홀수 인덱스 1, 3에 주어진 n 값인 100을 더하면 [444, 655, 666, 877]이 됩니다. 따라서 [444, 655, 666, 877]를 return 합니다.문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
strArr의 길이 ≤ 100,000
+
+strArr의 원소의 길이 ≤ 30strArr의 원소들은 알파벳 소문자로 이루어진 문자열입니다.| strArr | +result | +
|---|---|
| ["a","bc","d","efg","hi"] | +2 | +
입출력 예 #1
+ +| 문자열 길이 | +문자열 목록 | +개수 | +
|---|---|---|
| 1 | +["a","d"] | +2 | +
| 2 | +["bc","hi"] | +2 | +
| 3 | +["efg"] | +1 | +
이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의합니다.
+ +두 정수 배열 arr1과 arr2가 주어질 때, 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1, 두 배열이 같다면 0을 return 하는 solution 함수를 작성해 주세요.
arr1의 길이 ≤ 100arr2의 길이 ≤ 100arr1의 원소 ≤ 100arr2의 원소 ≤ 100| arr1 | +arr2 | +result | +
|---|---|---|
| [49, 13] | +[70, 11, 2] | +-1 | +
| [100, 17, 84, 1] | +[55, 12, 65, 36] | +1 | +
| [1, 2, 3, 4, 5] | +[3, 3, 3, 3, 3] | +0 | +
입출력 예 #1
+ +arr1의 길이는 2이고 arr2의 길이는 3으로 arr2의 길이가 더 깁니다. 따라서 arr2가 arr1보다 크므로 -1을 return 합니다.입출력 예 #2
+ +arr1의 길이과 arr2의 길이가 4로 같습니다. arr1의 모든 원소의 합은 100 + 17 + 84 + 1 = 202이고 arr2의 모든 원소의 합은 55 + 12 + 65 + 36 = 168으로 arr1의 모든 원소의 합이 더 큽니다. 따라서 arr1이 arr2보다 크므로 1을 return 합니다.입출력 예 #3
+ +arr1의 길이와 arr2의 길이가 5로 같고 각 배열의 모든 원소의 합 또한 15로 같습니다. 따라서 arr1과 arr2가 같으므로 0을 return 합니다.※ 공지 - 2023년 4월 21일 테스트케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181856.\342\200\205\353\260\260\354\227\264\342\200\205\353\271\204\352\265\220\355\225\230\352\270\260/\353\260\260\354\227\264\342\200\205\353\271\204\352\265\220\355\225\230\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181856.\342\200\205\353\260\260\354\227\264\342\200\205\353\271\204\352\265\220\355\225\230\352\270\260/\353\260\260\354\227\264\342\200\205\353\271\204\352\265\220\355\225\230\352\270\260.js" new file mode 100644 index 0000000..b233dc2 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181856.\342\200\205\353\260\260\354\227\264\342\200\205\353\271\204\352\265\220\355\225\230\352\270\260/\353\260\260\354\227\264\342\200\205\353\271\204\352\265\220\355\225\230\352\270\260.js" @@ -0,0 +1,11 @@ +function solution(arr1, arr2) { + let len1 = arr1.length; + let len2 = arr2.length; + if(len2 > len1) return -1 + else if(len2 === len1){ + let sum1 = arr1.reduce((a,c)=> a = a+c,0) + let sum2 = arr2.reduce((a,c)=> a= a+c,0) + if(sum1===sum2) return 0 + return sum2>sum1? -1 : 1 + } else return 1 +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181857.\342\200\205\353\260\260\354\227\264\354\235\230\342\200\205\352\270\270\354\235\264\353\245\274\342\200\2052\354\235\230\342\200\205\352\261\260\353\223\255\354\240\234\352\263\261\354\234\274\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181857.\342\200\205\353\260\260\354\227\264\354\235\230\342\200\205\352\270\270\354\235\264\353\245\274\342\200\2052\354\235\230\342\200\205\352\261\260\353\223\255\354\240\234\352\263\261\354\234\274\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260/README.md" new file mode 100644 index 0000000..d448019 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181857.\342\200\205\353\260\260\354\227\264\354\235\230\342\200\205\352\270\270\354\235\264\353\245\274\342\200\2052\354\235\230\342\200\205\352\261\260\353\223\255\354\240\234\352\263\261\354\234\274\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260/README.md" @@ -0,0 +1,70 @@ +# [level 0] 배열의 길이를 2의 거듭제곱으로 만들기 - 181857 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181857) + +### 성능 요약 + +메모리: 33.5 MB, 시간: 0.05 ms + +### 구분 + +코딩테스트 연습 > 코딩 기초 트레이닝 + +### 채점결과 + +정확성: 100.0정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요.
arr의 길이 ≤ 1,000arr의 원소 ≤ 1,000| arr | +result | +
|---|---|
| [1, 2, 3, 4, 5, 6] | +[1, 2, 3, 4, 5, 6, 0, 0] | +
| [58, 172, 746, 89] | +[58, 172, 746, 89] | +
입출력 예 #1
+ +arr의 길이는 6입니다. arr의 길이를 2의 정수 거듭제곱으로 만드는 방법은 0을 2개, 10개, 26개,..., 추가하는 방법이 있고 그중 최소한으로 0을 추가하는 방법은 2개를 추가하는 것입니다. 따라서 [1, 2, 3, 4, 5, 6, 0, 0]을 return 합니다.입출력 예 #2
+ +arr의 길이는 4이고 이미 2의 정수 거듭제곱입니다. 따라서 뒤에 0을 추가하지 않아도 되므로 [58, 172, 746, 89]를 return 합니다.랜덤으로 서로 다른 k개의 수를 저장한 배열을 만드려고 합니다. 적절한 방법이 떠오르지 않기 때문에 일정한 범위 내에서 무작위로 수를 뽑은 후, 지금까지 나온적이 없는 수이면 배열 맨 뒤에 추가하는 방식으로 만들기로 합니다.
+ +이미 어떤 수가 무작위로 주어질지 알고 있다고 가정하고, 실제 만들어질 길이 k의 배열을 예상해봅시다.
정수 배열 arr가 주어집니다. 문제에서의 무작위의 수는 arr에 저장된 순서대로 주어질 예정이라고 했을 때, 완성될 배열을 return 하는 solution 함수를 완성해 주세요.
단, 완성될 배열의 길이가 k보다 작으면 나머지 값을 전부 -1로 채워서 return 합니다.
arr의 길이 ≤ 100,000
+
+arr의 원소 ≤ 100,000k ≤ 1,000| arr | +k | +result | +
|---|---|---|
| [0, 1, 1, 2, 2, 3] | +3 | +[0, 1, 2] | +
| [0, 1, 1, 1, 1] | +4 | +[0, 1, -1, -1] | +
입출력 예 #1
+ +k개의 수를 골라내면 [0, 1, 2]가 됩니다. 따라서 [0, 1, 2]를 return 합니다.입출력 예 #2
+ +아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고, flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 return 하는 solution 함수를 작성해 주세요.
arr의 길이 = flag의 길이 ≤ 100arr의 모든 원소는 1 이상 9 이하의 정수입니다.| arr | +flag | +result | +
|---|---|---|
| [3, 2, 4, 1, 3] | +[true, false, true, false, false] | +[3, 3, 3, 3, 4, 4, 4, 4] | +
입출력 예 #1
+ +예제 1번에서 X의 변화를 표로 나타내면 다음과 같습니다
+| i | +flag[i] | +arr[i] | +X | +
|---|---|---|---|
| + | + | + | [] | +
| 0 | +true | +3 | +[3, 3, 3, 3, 3, 3] | +
| 1 | +false | +2 | +[3, 3, 3, 3] | +
| 2 | +true | +4 | +[3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4] | +
| 3 | +false | +1 | +[3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4] | +
| 4 | +false | +3 | +[3, 3, 3, 3, 4, 4, 4, 4] | +
따라서 [3, 3, 3, 3, 4, 4, 4, 4]를 return 합니다.
임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다.
+ +예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다.
+ +문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다.
+ +myStr의 길이 ≤ 1,000,000
+
+myStr은 알파벳 소문자로 이루어진 문자열 입니다.| myStr | +result | +
|---|---|
| "baconlettucetomato" | +["onlettu", "etom", "to"] | +
| "abcd" | +["d"] | +
| "cabab" | +["EMPTY"] | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +문자열 binomial이 매개변수로 주어집니다. binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.
a, b ≤ 40,000a, b는 0으로 시작하지 않습니다.| binomial | +result | +
|---|---|
| "43 + 12" | +55 | +
| "0 - 7777" | +-7777 | +
| "40000 * 40000" | +1600000000 | +
입출력 예 #1
+ +binomial은 "43 + 12"로 이 식을 계산한 결과인 43 + 12 = 55를 return 합니다.입출력 예 #2
+ +binomial은 "0 - 7777"로 이 식을 계산한 결과인 0 - 7777 = -7777을 return 합니다.입출력 예 #3
+ +binomial은 "40000 * 40000"으로 이 식을 계산한 결과인 40000 × 40000 = 1600000000을 return 합니다.문자열 myString이 주어집니다. "x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요.
단, 빈 문자열은 반환할 배열에 넣지 않습니다.
+ +myString ≤ 100,000
+
+myString은 알파벳 소문자로 이루어진 문자열입니다.| myString | +result | +
|---|---|
| "axbxcxdx" | +["a","b","c","d"] | +
| "dxccxbbbxaaaa" | +["aaaa","bbb","cc","d"] | +
입출력 예 #1
+ +myString을 "x"를 기준으로 자른 배열은 ["a","b","c","d"]이며, 이 배열은 이미 사전순으로 정렬된 상태입니다. 따라서 해당 배열을 return 합니다.입출력 예 #2
+ +myString을 "x"를 기준으로 자른 배열은 ["d","cc","bbb","aaaa"]이며, 이 배열을 사전순으로 정렬하면 ["aaaa","bbb","cc","d"]입니다. 따라서 해당 배열을 return 합니다.문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
myString의 길이 ≤ 100,000
+
+myString은 알파벳 소문자로 이루어진 문자열입니다.| myString | +result | +
|---|---|
| "oxooxoxxox" | +[1, 2, 1, 0, 1, 0] | +
| "xabcxdefxghi" | +[0, 3, 3, 3] | +
입출력 예 #1
+ +입출력 예 #2
+ +단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
my_string은 영소문자와 공백으로만 이루어져 있습니다.my_string의 길이 ≤ 1,000my_string의 맨 앞과 맨 뒤에도 공백이 있을 수 있습니다.my_string에는 단어가 하나 이상 존재합니다.| my_string | +result | +
|---|---|
| " i love you" | +["i", "love", "you"] | +
| " programmers " | +["programmers"] | +
입출력 예 #1
+ +my_string은 " i love you"로 공백을 기준으로 단어를 나누면 "i", "love", "you" 3개의 단어가 있습니다. 따라서 ["i", "love", "you"]를 return 합니다.입출력 예 #2
+ +my_string은 " programmers "로 단어는 "programmers" 하나만 있습니다. 따라서 ["programmers"]를 return 합니다.단어가 공백 한 개로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
my_string은 영소문자와 공백으로만 이루어져 있습니다.my_string의 길이 ≤ 1,000my_string의 맨 앞과 맨 뒤에 글자는 공백이 아닙니다.| my_string | +result | +
|---|---|
| "i love you" | +["i", "love", "you"] | +
| "programmers" | +["programmers"] | +
입출력 예 #1
+ +my_string은 "i love you"로 공백 한 칸으로 나누어진 단어들은 앞에서부터 순서대로 "i", "love", "you" 이므로 ["i", "love", "you"]를 return 합니다.입출력 예 #2
+ +my_string은 "programmers"로 단어가 하나만 있습니다. 따라서 ["programmers"]를 return 합니다.문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.
strArr의 길이 ≤ 1,000
+
+strArr의 원소의 길이 ≤ 20strArr의 원소는 알파벳 소문자로 이루어진 문자열입니다.| strArr | +result | +
|---|---|
| ["and","notad","abcd"] | +["and","abcd"] | +
| ["there","are","no","a","ds"] | +["there","are","no","a","ds"] | +
입출력 예 #1
+ +입출력 예 #2
+ +문자열 myString과 pat이 주어집니다. myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요.
myString ≤ 1000pat ≤ 10| myString | +pat | +result | +
|---|---|---|
| "banana" | +"ana" | +2 | +
| "aaaa" | +"aa" | +3 | +
입출력 예 #1
+ +입출력 예 #2
+ +문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.
myString ≤ 20pat ≤ 5
+
+pat은 반드시 myString의 부분 문자열로 주어집니다.myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.| myString | +pat | +result | +
|---|---|---|
| "AbCdEFG" | +"dE" | +"AbCdE" | +
| "AAAAaaaa" | +"a" | +"AAAAaaaa" | +
입출력 예 #1
+ +입출력 예 #2
+ +문자열 배열 strArr가 주어집니다. 모든 원소가 알파벳으로만 이루어져 있을 때, 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환하는 solution 함수를 완성해 주세요.
strArr ≤ 20
+
+strArr의 원소의 길이 ≤ 20strArr의 원소는 알파벳으로 이루어진 문자열 입니다.| strArr | +result | +
|---|---|
| ["AAA","BBB","CCC","DDD"] | +["aaa","BBB","ccc","DDD"] | +
| ["aBc","AbC"] | +["abc","ABC"] | +
입출력 예 #1
+ +strArr[0]과 strArr[2]는 짝수번째 인덱스의 문자열이므로 모두 소문자로 바꿔서 "aaa"와 "ccc"가 됩니다.strArr[1]과 strArr[3]는 홀수번째 인덱스의 문자열인데 원래 대문자이므로 그대로 둡니다.입출력 예 #2
+ +strArr[0]은 짝수번째 인덱스의 문자열이므로 소문자로 바꿔서 "abc"가 됩니다.strArr[1]은 홀수번째 인덱스의 문자열이므로 대문자로 바꿔서 "ABC"가 됩니다.※ 2023년 05월 15일 제한사항이 수정되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181875.\342\200\205\353\260\260\354\227\264\354\227\220\354\204\234\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\263\200\355\231\230\355\225\230\352\270\260/\353\260\260\354\227\264\354\227\220\354\204\234\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\263\200\355\231\230\355\225\230\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181875.\342\200\205\353\260\260\354\227\264\354\227\220\354\204\234\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\263\200\355\231\230\355\225\230\352\270\260/\353\260\260\354\227\264\354\227\220\354\204\234\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\263\200\355\231\230\355\225\230\352\270\260.js" new file mode 100644 index 0000000..0b98b72 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181875.\342\200\205\353\260\260\354\227\264\354\227\220\354\204\234\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\263\200\355\231\230\355\225\230\352\270\260/\353\260\260\354\227\264\354\227\220\354\204\234\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\263\200\355\231\230\355\225\230\352\270\260.js" @@ -0,0 +1,5 @@ +function solution(strArr) { + return strArr.map((a,i) => { + return i%2 === 0? a = a.toLowerCase() : a = a.toUpperCase(); + }) +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181880.\342\200\2051\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260/1\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181880.\342\200\2051\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260/1\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260.js" new file mode 100644 index 0000000..111279b --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181880.\342\200\2051\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260/1\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260.js" @@ -0,0 +1,14 @@ +function solution(num_list) { + return num_list.reduce((a,c) => { + let count = 0; + while (c !== 1 ) { + c % 2 === 0? c = c/2 : c = (c-1)/2 + count++ + } + return a + count; + }, 0); +} + +// function solution(num_list) { +// return num_list.map(v => v.toString(2).length - 1).reduce((a, c) => a + c); +// } \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181880.\342\200\2051\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181880.\342\200\2051\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260/README.md" new file mode 100644 index 0000000..545a876 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181880.\342\200\2051\353\241\234\342\200\205\353\247\214\353\223\244\352\270\260/README.md" @@ -0,0 +1,70 @@ +# [level 0] 1로 만들기 - 181880 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181880) + +### 성능 요약 + +메모리: 33.4 MB, 시간: 0.05 ms + +### 구분 + +코딩테스트 연습 > 코딩 기초 트레이닝 + +### 채점결과 + +정확성: 100.0정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 됩니다. 예를 들어 10이 있다면 다음과 같은 과정으로 1이 됩니다.
+ +위와 같이 3번의 나누기 연산으로 1이 되었습니다.
+ +정수들이 담긴 리스트 num_list가 주어질 때, num_list의 모든 원소를 1로 만들기 위해서 필요한 나누기 연산의 횟수를 return하도록 solution 함수를 완성해주세요.
num_list의 길이 ≤ 15num_list의 원소 ≤ 30| num_list | +result | +
|---|---|
| [12, 4, 15, 1, 14] | +11 | +
입출력 예 #1
+ +정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e] 꼴입니다.
각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 arr[i]에 1을 더합니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.
arr의 길이 ≤ 1,000
+
+arr의 원소 ≤ 1,000,000queries의 길이 ≤ 1,000
+
+s ≤ e < arr의 길이| arr | +queries | +result | +
|---|---|---|
| [0, 1, 2, 3, 4] | +[[0, 1],[1, 2],[2, 3]] | +[1, 3, 4, 4, 4] | +
입출력 예 #1
+ +arr가 다음과 같이 변합니다.| i | +queries[i] | +arr | +
|---|---|---|
| - | +- | +[0, 1, 2, 3, 4] | +
| 0 | +[0,1] | +[1, 2, 2, 3, 4] | +
| 1 | +[1,2] | +[1, 3, 3, 3, 4] | +
| 2 | +[2,3] | +[1, 3, 4, 4, 4] | +
최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names가 주어질 때, 앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다.
names의 길이 ≤ 30names의 원소의 길이 ≤ 10names의 원소는 영어 알파벳 소문자로만 이루어져 있습니다.| names | +result | +
|---|---|
| ["nami", "ahri", "jayce", "garen", "ivern", "vex", "jinx"] | +["nami", "vex"] | +
입출력 예 #1
+ +정수 배열 arr와 query가 주어집니다.
query를 순회하면서 다음 작업을 반복합니다.
arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버립니다.arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버립니다.위 작업을 마친 후 남은 arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요.
arr의 길이 ≤ 100,000
+
+arr의 원소 ≤ 100query의 길이 < min(50, arr의 길이 / 2)
+
+query의 각 원소는 0보다 크거나 같고 남아있는 arr의 길이 보다 작습니다.| arr | +query | +result | +
|---|---|---|
| [0, 1, 2, 3, 4, 5] | +[4, 1, 2] | +[1, 2, 3] | +
입출력 예 #1
+ +query의 값과 처리 전후의 arr의 상태를 표로 나타내면 다음과 같습니다.| query의 값 | +query 처리 전 | +query 처리 후 | +비고 | +
|---|---|---|---|
| 4 | +[0, 1, 2, 3, 4, 5] | +[0, 1, 2, 3, 4] | +0번 인덱스의 쿼리이므로 뒷부분을 자른다. | +
| 1 | +[0, 1, 2, 3, 4] | +[1, 2, 3, 4] | +1번 인덱스의 쿼리이므로 앞부분을 자른다. | +
| 2 | +[1, 2, 3, 4] | +[1, 2, 3] | +2번 인덱스의 쿼리이므로 뒷부분을 자른다. | +
※2023년 04월 24일 지문과 테스트 케이스가 수정되었습니다. 기존에 제출한 코드가 통과하지 못할 수 있습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181893.\342\200\205\353\260\260\354\227\264\342\200\205\354\241\260\352\260\201\355\225\230\352\270\260/\353\260\260\354\227\264\342\200\205\354\241\260\352\260\201\355\225\230\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181893.\342\200\205\353\260\260\354\227\264\342\200\205\354\241\260\352\260\201\355\225\230\352\270\260/\353\260\260\354\227\264\342\200\205\354\241\260\352\260\201\355\225\230\352\270\260.js" new file mode 100644 index 0000000..c8efd08 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181893.\342\200\205\353\260\260\354\227\264\342\200\205\354\241\260\352\260\201\355\225\230\352\270\260/\353\260\260\354\227\264\342\200\205\354\241\260\352\260\201\355\225\230\352\270\260.js" @@ -0,0 +1,6 @@ +function solution(arr, query) { + query.map((a,i) => { + i%2===0? arr = arr.slice(0,query[i]+1) : arr = arr.slice(query[i]) + }) + return arr +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181894.\342\200\2052\354\235\230\342\200\205\354\230\201\354\227\255/2\354\235\230\342\200\205\354\230\201\354\227\255.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181894.\342\200\2052\354\235\230\342\200\205\354\230\201\354\227\255/2\354\235\230\342\200\205\354\230\201\354\227\255.js" new file mode 100644 index 0000000..19e49b6 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181894.\342\200\2052\354\235\230\342\200\205\354\230\201\354\227\255/2\354\235\230\342\200\205\354\230\201\354\227\255.js" @@ -0,0 +1,4 @@ +function solution(arr) { + + return arr.indexOf(2) === -1? [-1] : arr.slice(arr.indexOf(2), arr.lastIndexOf(2)+1); +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181894.\342\200\2052\354\235\230\342\200\205\354\230\201\354\227\255/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181894.\342\200\2052\354\235\230\342\200\205\354\230\201\354\227\255/README.md" new file mode 100644 index 0000000..ce66c84 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181894.\342\200\2052\354\235\230\342\200\205\354\230\201\354\227\255/README.md" @@ -0,0 +1,99 @@ +# [level 0] 2의 영역 - 181894 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181894) + +### 성능 요약 + +메모리: 41.5 MB, 시간: 0.26 ms + +### 구분 + +코딩테스트 연습 > 코딩 기초 트레이닝 + +### 채점결과 + +정확성: 100.0정수 배열 arr가 주어집니다. 배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 return 하는 solution 함수를 완성해 주세요.
단, arr에 2가 없는 경우 [-1]을 return 합니다.
arr의 길이 ≤ 100,000
+
+arr의 원소 ≤ 10| arr | +result | +
|---|---|
| [1, 2, 1, 4, 5, 2, 9] | +[2, 1, 4, 5, 2] | +
| [1, 2, 1] | +[2] | +
| [1, 1, 1] | +[-1] | +
| [1, 2, 1, 2, 1, 10, 2, 1] | +[2, 1, 2, 1, 10, 2] | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +입출력 예 #4
+ +※ 2023년 04월 27일 입출력 예, 입출력 예 설명 및 예시 테스트 케이스가 수정 되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181895.\342\200\205\353\260\260\354\227\264\342\200\205\353\247\214\353\223\244\352\270\260\342\200\2053/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181895.\342\200\205\353\260\260\354\227\264\342\200\205\353\247\214\353\223\244\352\270\260\342\200\2053/README.md" new file mode 100644 index 0000000..2a1ec34 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181895.\342\200\205\353\260\260\354\227\264\342\200\205\353\247\214\353\223\244\352\270\260\342\200\2053/README.md" @@ -0,0 +1,73 @@ +# [level 0] 배열 만들기 3 - 181895 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181895) + +### 성능 요약 + +메모리: 37.5 MB, 시간: 0.45 ms + +### 구분 + +코딩테스트 연습 > 코딩 기초 트레이닝 + +### 채점결과 + +정확성: 100.0정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어집니다.
intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간입니다. 닫힌 구간은 양 끝값과 그 사이의 값을 모두 포함하는 구간을 의미합니다.
이때 배열 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return 하는 solution 함수를 완성해 주세요.
arr의 길이 ≤ 100,000
+
+arr의 원소 < 100a1 ≤ b1 < arr의 길이a2 ≤ b2 < arr의 길이| arr | +intervals | +result | +
|---|---|---|
| [1, 2, 3, 4, 5] | +[[1, 3], [0, 4]] | +[2, 3, 4, 1, 2, 3, 4, 5] | +
입출력 예 #1
+ +정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요.
단, 만약 그러한 인덱스가 없다면 -1을 반환합니다.
+ +arr의 길이 ≤ 100'000
+
+arr의 원소는 전부 1 또는 0입니다. | arr | +idx | +result | +
|---|---|---|
| [0, 0, 0, 1] | +1 | +3 | +
| [1, 0, 0, 1, 0, 0] | +4 | +-1 | +
| [1, 1, 1, 1, 0] | +3 | +3 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +정수 start_num와 end_num가 주어질 때, start_num에서 end_num까지 1씩 감소하는 수들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
end_num ≤ start_num ≤ 50| start_num | +end_num | +result | +
|---|---|---|
| 10 | +3 | +[10, 9, 8, 7, 6, 5, 4, 3] | +
입출력 예 #1
+ +두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
r < q ≤ 20r < code의 길이 ≤ 1,000code는 영소문자로만 이루어져 있습니다.| q | +r | +code | +result | +
|---|---|---|---|
| 3 | +1 | +"qjnwezgrpirldywt" | +"jerry" | +
| 1 | +0 | +"programmers" | +"programmers" | +
입출력 예 #1
+ +q와 r은 각각 3, 1이고 인덱스와 그 값을 q로 나눈 나머지가 잘 보이도록 표로 만들면 다음과 같습니다.code |
+q | +j | +n | +w | +e | +z | +g | +r | +p | +i | +r | +l | +d | +y | +w | +t | +
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| index | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +10 | +11 | +12 | +13 | +14 | +15 | +
q로 나눈 나머지 |
+0 | +1 | +2 | +0 | +1 | +2 | +0 | +1 | +2 | +0 | +1 | +2 | +0 | +1 | +2 | +0 | +
`q`로 나눈 나머지가 1인 인덱스의 문자들을 앞에서부터 순서대로 이어 붙이면 "jerry"가 되므로 이를 return 합니다.
+입출력 예 #2
+ +q와 r은 각각 1, 0이고 인덱스와 그 값을 q로 나눈 나머지가 잘 보이도록 표로 만들면 다음과 같습니다.code |
+p | +r | +o | +g | +r | +a | +m | +m | +e | +r | +s | +
|---|---|---|---|---|---|---|---|---|---|---|---|
| index | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | +10 | +
q로 나눈 나머지 |
+0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +0 | +
`q`로 나눈 나머지가 1인 인덱스의 문자들을 앞에서부터 순서대로 이어 붙이면 "programmers"가 되므로 이를 return 합니다.
+문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.
my_string은 영소문자로 이루어져 있습니다.m ≤ my_string의 길이 ≤ 1,000m은 my_string 길이의 약수로만 주어집니다.c ≤ m| my_string | +m | +c | +result | +
|---|---|---|---|
| "ihrhbakrfpndopljhygc" | +4 | +2 | +"happy" | +
| "programmers" | +1 | +1 | +"programmers" | +
입출력 예 #1
+ +예제 1번의 my_string을 한 줄에 4 글자씩 쓰면 다음의 표와 같습니다.
| 1열 | +2열 | +3열 | +4열 | +
|---|---|---|---|
| i | +h | +r | +h | +
| b | +a | +k | +r | +
| f | +p | +n | +d | +
| o | +p | +l | +j | +
| h | +y | +g | +c | +
2열에 적힌 글자를 세로로 읽으면 happy이므로 "happy"를 return 합니다.
입출력 예 #2
+ +my_string은 m이 1이므로 세로로 "programmers"를 적는 것과 같고 따라서 1열에 적힌 글자를 세로로 읽으면 programmers입니다. 따라서 "programmers"를 return 합니다.문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.
my_string은 숫자와 알파벳으로만 이루어져 있습니다.my_string의 길이 ≤ 1,000s ≤ e < my_string의 길이| my_string | +s | +e | +result | +
|---|---|---|---|
| "Progra21Sremm3" | +6 | +12 | +"ProgrammerS123" | +
| "Stanley1yelnatS" | +4 | +10 | +"Stanley1yelnatS" | +
입출력 예 #1
+ +my_string에서 인덱스 6부터 인덱스 12까지를 뒤집은 문자열은 "ProgrammerS123"이므로 "ProgrammerS123"를 return 합니다.입출력 예 #2
+ +my_string에서 인덱스 4부터 인덱스 10까지를 뒤집으면 원래 문자열과 같은 "Stanley1yelnatS"이므로 "Stanley1yelnatS"를 return 합니다.어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
+문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
my_string은 알파벳 소문자로만 이루어져 있습니다.my_string의 길이 ≤ 100| my_string | +result | +
|---|---|
| "banana" | +["a", "ana", "anana", "banana", "na", "nana"] | +
| "programmers" | +["ammers", "ers", "grammers", "mers", "mmers", "ogrammers", "programmers", "rammers", "rogrammers", "rs", "s"] | +
입출력 예 #1
+ +my_string는 "banana"로 모든 접미사는 문제의 설명과 같습니다. 이를 사전순으로 정렬하면 "a", "ana", "anana", "banana", "na", "nana"이므로 ["a", "ana", "anana", "banana", "na", "nana"]를 return 합니다.입출력 예 #2
+ +my_string는 "programmers"이고 모든 접미사는 "programmers", "rogrammers", "ogrammers", "grammers", "rammers", "ammers", "mmers", "mers", "ers", "rs", "s"입니다. 이를 사전순으로 정렬한 문자열 배열 ["ammers", "ers", "grammers", "mers", "mmers", "ogrammers", "programmers", "rammers", "rogrammers", "rs", "s"]를 return 합니다.길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
my_strings의 길이 = parts의 길이 ≤ 100my_strings의 원소의 길이 ≤ 100parts[i]를 [s, e]라 할 때, 다음을 만족합니다.
+
+my_strings[i]의 길이| my_strings | +parts | +result | +
|---|---|---|
| ["progressive", "hamburger", "hammer", "ahocorasick"] | +[[0, 4], [1, 2], [3, 5], [7, 7]] | +"programmers" | +
입출력 예 #1
+ +예제 1번의 입력을 보기 좋게 표로 나타내면 다음과 같습니다.
+| i | +my_strings[i] | +parts[i] | +부분 문자열 | +
|---|---|---|---|
| 0 | +"progressive" | +[0, 4] | +"progr" | +
| 1 | +"hamburger" | +[1, 2] | +"am" | +
| 2 | +"hammer" | +[3, 5] | +"mer" | +
| 3 | +"ahocorasick" | +[7, 7] | +"s" | +
각 부분 문자열을 순서대로 이어 붙인 문자열은 "programmers"입니다. 따라서 "programmers"를 return 합니다.
문자열 배열 intStrs와 정수 k, s, l가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다.
배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요.
s < 100l ≤ 8k < 10lintStrs의 길이 ≤ 10,000
+
+s + l ≤ intStrs의 원소의 길이 ≤ 120| intStrs | +k | +s | +l | +result | +
|---|---|---|---|---|
| ["0123456789","9876543210","9999999999999"] | +50000 | +5 | +5 | +[56789, 99999] | +
입출력 예 #1
+ +ret의 변화를 표시하면 다음 표와 같습니다.| idx | +잘라낸 문자열 | +ret | +
|---|---|---|
| 0 | +"56789" | +[56789] | +
| 1 | +"43210" | +[56789] | +
| 2 | +"99999" | +[56789, 99999] | +
문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 return 하는 solution 함수를 작성해 주세요.
my_string은 영소문자로만 이루어져 있습니다.my_string의 길이 ≤ 1,000queries의 원소는 [s, e]의 형태로 0 ≤ s ≤ e < my_string의 길이를 만족합니다.queries의 길이 ≤ 1,000| my_string | +queries | +result | +
|---|---|---|
| "rermgorpsam" | +[[2, 3], [0, 7], [5, 9], [6, 10]] | +"programmers" | +
my_string은 "rermgorpsam"이고 주어진 queries를 순서대로 처리하면 다음과 같습니다.|queries|my_string|
+ +|---|---|
+ +||"rermgorpsam"|
+ +|[2, 3]|"remrgorpsam"|
+ +|[0, 7]|"progrmersam"|
+ +|[5, 9]|"prograsremm"|
+ +|[6, 10]|"programmers"|
+따라서 "programmers"를 return 합니다.
+음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같은 것이 알려져 있습니다.
+이 사실을 이용하여 음이 아닌 정수가 문자열 number로 주어질 때, 이 정수를 9로 나눈 나머지를 return 하는 solution 함수를 작성해주세요.
number의 길이 ≤ 100,000number의 원소는 숫자로만 이루어져 있습니다.number는 정수 0이 아니라면 숫자 '0'으로 시작하지 않습니다.| number | +result | +
|---|---|
| "123" | +6 | +
| "78720646226947352489" | +2 | +
입출력 예 #1
+ +number는 123으로 각 자리 숫자의 합은 6입니다. 6을 9로 나눈 나머지는 6이고, 실제로 123 = 9 × 13 + 6입니다. 따라서 6을 return 합니다.입출력 예 #2
+ +number는 78720646226947352489으로 각자리 숫자의 합은 101입니다. 101을 9로 나눈 나머지는 2이고, 실제로 78720646226947352489 = 9 × 8746738469660816943 + 2입니다. 따라서 2를 return 합니다.boolean 변수 x1, x2, x3, x4가 매개변수로 주어질 때, 다음의 식의 true/false를 return 하는 solution 함수를 작성해 주세요.
x1 ∨ x2) ∧ (x3 ∨ x4)| x1 | +x2 | +x3 | +x4 | +result | +
|---|---|---|---|---|
| false | +true | +true | +true | +true | +
| true | +false | +false | +false | +false | +
입출력 예 #1
+ +예제 1번의 x1, x2, x3, x4로 식을 계산하면 다음과 같습니다.
(x1 ∨ x2) ∧ (x3 ∨ x4) ≡ (F ∨ T) ∧ (T ∨ T) ≡ T ∧ T ≡ T
따라서 true를 return 합니다.
입출력 예 #2
+ +예제 2번의 x1, x2, x3, x4로 식을 계산하면 다음과 같습니다.
(x1 ∨ x2) ∧ (x3 ∨ x4) ≡ (T ∨ F) ∧ (F ∨ F) ≡ T ∧ F ≡ F
따라서 false를 return 합니다.
∨과 ∧의 진리표는 다음과 같습니다.
+| x | +y | +x ∨ y | +x ∧ y | +
|---|---|---|---|
| T | +T | +T | +T | +
| T | +F | +T | +F | +
| F | +T | +T | +F | +
| F | +F | +F | +F | +
정수 배열 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 함수를 완성해 주세요.
arr의 길이 ≤ 100,000
+
+arr의 원소 ≤ 100,000| arr | +result | +
|---|---|
| [1, 4, 2, 5, 3] | +[1, 2, 3] | +
입출력 예 #1
+ +| i | +arr[i] | +stk | +
|---|---|---|
| 0 | +1 | +[] | +
| 1 | +4 | +[1] | +
| 2 | +2 | +[1, 4] | +
| 2 | +2 | +[1] | +
| 3 | +5 | +[1, 2] | +
| 4 | +3 | +[1, 2, 5] | +
| 4 | +3 | +[1, 2] | +
| - | +- | +[1, 2, 3] | +
모든 자연수 x에 대해서 현재 값이 x이면 x가 짝수일 때는 2로 나누고, x가 홀수일 때는 3 * x + 1로 바꾸는 계산을 계속해서 반복하면 언젠가는 반드시 x가 1이 되는지 묻는 문제를 콜라츠 문제라고 부릅니다.
그리고 위 과정에서 거쳐간 모든 수를 기록한 수열을 콜라츠 수열이라고 부릅니다.
+ +계산 결과 1,000 보다 작거나 같은 수에 대해서는 전부 언젠가 1에 도달한다는 것이 알려져 있습니다.
+ +임의의 1,000 보다 작거나 같은 양의 정수 n이 주어질 때 초기값이 n인 콜라츠 수열을 return 하는 solution 함수를 완성해 주세요.
n ≤ 1,000| n | +result | +
|---|---|
| 10 | +[10, 5, 16, 8, 4, 2, 1] | +
입출력 예 #1
+ +| 연산 횟수 | +x | +홀짝 여부 | +
|---|---|---|
| 0 | +10 | +짝수 | +
| 1 | +5 | +홀수 | +
| 2 | +16 | +짝수 | +
| 3 | +8 | +짝수 | +
| 4 | +4 | +짝수 | +
| 5 | +2 | +짝수 | +
| 6 | +1 | +홀수 | +
정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.
+ +l ≤ r ≤ 1,000,000| l | +r | +result | +
|---|---|---|
| 5 | +555 | +[5, 50, 55, 500, 505, 550, 555] | +
| 10 | +20 | +[-1] | +
입출력 예 #1
+ +입출력 예 #2
+ +정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다.
각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 i가 k의 배수이면 arr[i]에 1을 더합니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.
arr의 길이 ≤ 1,000
+
+arr의 원소 ≤ 1,000,000queries의 길이 ≤ 1,000
+
+s ≤ e < arr의 길이k ≤ 5| arr | +queries | +result | +
|---|---|---|
| [0, 1, 2, 4, 3] | +[[0, 4, 1],[0, 3, 2],[0, 3, 3]] | +[3, 2, 4, 6, 4] | +
입출력 예 #1
+ +arr가 다음과 같이 변합니다.| arr | +
|---|
| [0, 1, 2, 4, 3] | +
| [1, 2, 3, 5, 4] | +
| [2, 2, 4, 5, 4] | +
| [3, 2, 4, 6, 4] | +
※ 2023년 04월 27일 입출력 예 설명이 수정되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181922.\342\200\205\354\210\230\354\227\264\352\263\274\342\200\205\352\265\254\352\260\204\342\200\205\354\277\274\353\246\254\342\200\2054/\354\210\230\354\227\264\352\263\274\342\200\205\352\265\254\352\260\204\342\200\205\354\277\274\353\246\254\342\200\2054.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181922.\342\200\205\354\210\230\354\227\264\352\263\274\342\200\205\352\265\254\352\260\204\342\200\205\354\277\274\353\246\254\342\200\2054/\354\210\230\354\227\264\352\263\274\342\200\205\352\265\254\352\260\204\342\200\205\354\277\274\353\246\254\342\200\2054.js" new file mode 100644 index 0000000..0ec1634 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181922.\342\200\205\354\210\230\354\227\264\352\263\274\342\200\205\352\265\254\352\260\204\342\200\205\354\277\274\353\246\254\342\200\2054/\354\210\230\354\227\264\352\263\274\342\200\205\352\265\254\352\260\204\342\200\205\354\277\274\353\246\254\342\200\2054.js" @@ -0,0 +1,11 @@ +function solution(arr, queries) { + queries.forEach(query => { + const [s, e, k] = query; + for (let i = s; i <= e; i++) { + if (i % k === 0) { + arr[i]++; + } + } + }); + return arr; +} diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181923.\342\200\205\354\210\230\354\227\264\352\263\274\342\200\205\352\265\254\352\260\204\342\200\205\354\277\274\353\246\254\342\200\2052/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181923.\342\200\205\354\210\230\354\227\264\352\263\274\342\200\205\352\265\254\352\260\204\342\200\205\354\277\274\353\246\254\342\200\2052/README.md" new file mode 100644 index 0000000..dcf42b8 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181923.\342\200\205\354\210\230\354\227\264\352\263\274\342\200\205\352\265\254\352\260\204\342\200\205\354\277\274\353\246\254\342\200\2052/README.md" @@ -0,0 +1,79 @@ +# [level 0] 수열과 구간 쿼리 2 - 181923 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181923) + +### 성능 요약 + +메모리: 38 MB, 시간: 63.85 ms + +### 구분 + +코딩테스트 연습 > 코딩 기초 트레이닝 + +### 채점결과 + +정확성: 100.0정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다.
각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 k보다 크면서 가장 작은 arr[i]를 찾습니다.
각 쿼리의 순서에 맞게 답을 저장한 배열을 반환하는 solution 함수를 완성해 주세요.
+단, 특정 쿼리의 답이 존재하지 않으면 -1을 저장합니다.
arr의 길이 ≤ 1,000
+
+arr의 원소 ≤ 1,000,000queries의 길이 ≤ 1,000
+
+s ≤ e < arr의 길이k ≤ 1,000,000| arr | +queries | +result | +
|---|---|---|
| [0, 1, 2, 4, 3] | +[[0, 4, 2],[0, 3, 2],[0, 2, 2]] | +[3, 4, -1] | +
입출력 예 #1
+ +정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [i, j] 꼴입니다.
각 query마다 순서대로 arr[i]의 값과 arr[j]의 값을 서로 바꿉니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.
arr의 길이 ≤ 1,000
+
+arr의 원소 ≤ 1,000,000queries의 길이 ≤ 1,000
+
+i < j < arr의 길이| arr | +queries | +result | +
|---|---|---|
| [0, 1, 2, 3, 4] | +[[0, 3],[1, 2],[1, 4]] | +[3, 4, 1, 0, 2] | +
입출력 예 #1
+ +arr가 다음과 같이 변합니다.| arr | +
|---|
| [0, 1, 2, 3, 4] | +
| [3, 1, 2, 0, 4] | +
| [3, 2, 1, 0, 4] | +
| [3, 4, 1, 0, 2] | +
정수 배열 numLog가 주어집니다. 처음에 numLog[0]에서 부터 시작해 "w", "a", "s", "d"로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다.
그리고 매번 조작을 할 때마다 결괏값을 기록한 정수 배열이 numLog입니다. 즉, numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어 있습니다.
주어진 정수 배열 numLog에 대해 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성해 주세요.
numLog의 길이 ≤ 100,000
+
+numLog[0] ≤ 100,000i ≤ numLog의 길이인 모든 i에 대해 |numLog[i] - numLog[i - 1]|의 값은 1 또는 10입니다.| numLog | +result | +
|---|---|
| [0, 1, 0, 10, 0, 1, 0, 10, 0, -1, -2, -1] | +"wsdawsdassw" | +
입출력 예 #1
+ +numLog[0]에서부터 시작해 조작을 하면 numLog의 값과 순서대로 일치합니다. 따라서 "wsdawsdassw"를 return 합니다."수 조작하기 1" 문제의 n값이 numLog[0]에 해당하며, 이 문제에서 주어진 numLog에 따라 "수 조작하기 1" 문제의 control을 구하는 문제라고 이해할 수 있습니다.
입출력 예 #1은 "수 조작하기 1" 문제의 입출력 예 #1과 같은 예시이므로 참고하시기 바랍니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181925.\342\200\205\354\210\230\342\200\205\354\241\260\354\236\221\355\225\230\352\270\260\342\200\2052/\354\210\230\342\200\205\354\241\260\354\236\221\355\225\230\352\270\260\342\200\2052.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181925.\342\200\205\354\210\230\342\200\205\354\241\260\354\236\221\355\225\230\352\270\260\342\200\2052/\354\210\230\342\200\205\354\241\260\354\236\221\355\225\230\352\270\260\342\200\2052.js" new file mode 100644 index 0000000..e69e181 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181925.\342\200\205\354\210\230\342\200\205\354\241\260\354\236\221\355\225\230\352\270\260\342\200\2052/\354\210\230\342\200\205\354\241\260\354\236\221\355\225\230\352\270\260\342\200\2052.js" @@ -0,0 +1,19 @@ +function solution(numLog) { + const op = ["w","s","d","a"] + const answer = [] + for (let i = 1; i1부터 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이하의 정수입니다.| a | +b | +c | +result | +
|---|---|---|---|
| 2 | +6 | +1 | +9 | +
| 5 | +3 | +3 | +473 | +
| 4 | +4 | +4 | +110592 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +두 정수 a, d와 길이가 n인 boolean 배열 included가 주어집니다. 첫째항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때, 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요.
a ≤ 100d ≤ 100included의 길이 ≤ 100included에는 true가 적어도 하나 존재합니다.| a | +d | +included | +result | +
|---|---|---|---|
| 3 | +4 | +[true, false, false, true, true] | +37 | +
| 7 | +1 | +[false, false, false, true, false, false, false] | +10 | +
입출력 예 #1
+ +예제 1번은 a와 d가 각각 3, 4이고 included의 길이가 5입니다. 이를 표로 나타내면 다음과 같습니다.
| + | 1항 | +2항 | +3항 | +4항 | +5항 | +
|---|---|---|---|---|---|
| 등차수열 | +3 | +7 | +11 | +15 | +19 | +
| included | +true | +false | +false | +true | +true | +
따라서 true에 해당하는 1항, 4항, 5항을 더한 3 + 15 + 19 = 37을 return 합니다.
입출력 예 #2
+ +예제 2번은 a와 d가 각각 7, 1이고 included의 길이가 7입니다. 이를 표로 나타내면 다음과 같습니다.
| + | 1항 | +2항 | +3항 | +4항 | +5항 | +6항 | +7항 | +
|---|---|---|---|---|---|---|---|
| 등차수열 | +7 | +8 | +9 | +10 | +11 | +12 | +13 | +
| included | +false | +false | +false | +true | +false | +false | +false | +
따라서 4항만 true이므로 10을 return 합니다.
문자열 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으로 바꿉니다.문자열 code를 통해 만들어진 문자열 ret를 return 하는 solution 함수를 완성해 주세요.
단, 시작할 때 mode는 0이며, return 하려는 ret가 만약 빈 문자열이라면 대신 "EMPTY"를 return 합니다.
code의 길이 ≤ 100,000
+
+code는 알파벳 소문자 또는 "1"로 이루어진 문자열입니다.| code | +result | +
|---|---|
| "abc1abc1abc" | +"acbac" | +
입출력 예 #1
+ +code의 각 인덱스 i에 따라 다음과 같이 mode와 ret가 변합니다.| i | +code[i] | +mode | +ret | +
|---|---|---|---|
| 0 | +"a" | +0 | +"a" | +
| 1 | +"b" | +0 | +"a" | +
| 2 | +"c" | +0 | +"ac" | +
| 3 | +"1" | +1 | +"ac" | +
| 4 | +"a" | +1 | +"ac" | +
| 5 | +"b" | +1 | +"acb" | +
| 6 | +"c" | +1 | +"acb" | +
| 7 | +"1" | +0 | +"acb" | +
| 8 | +"a" | +0 | +"acba" | +
| 9 | +"b" | +0 | +"acba" | +
| 10 | +"c" | +0 | +"acbac" | +
따라서 "acbac"를 return 합니다.
+ +※ 2023년 05월 18일 지문이 수정되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181932.\342\200\205\354\275\224\353\223\234\342\200\205\354\262\230\353\246\254\355\225\230\352\270\260/\354\275\224\353\223\234\342\200\205\354\262\230\353\246\254\355\225\230\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181932.\342\200\205\354\275\224\353\223\234\342\200\205\354\262\230\353\246\254\355\225\230\352\270\260/\354\275\224\353\223\234\342\200\205\354\262\230\353\246\254\355\225\230\352\270\260.js" new file mode 100644 index 0000000..a70812a --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181932.\342\200\205\354\275\224\353\223\234\342\200\205\354\262\230\353\246\254\355\225\230\352\270\260/\354\275\224\353\223\234\342\200\205\354\262\230\353\246\254\355\225\230\352\270\260.js" @@ -0,0 +1,20 @@ +function solution(code) { + let mode = 0; + let ret = "" + code.split('').map((a,i) => { + if (mode === 0) { + if (a === '1') { + mode = 1 + } else { + if(i%2 === 0) ret += a + } + } else { + if (a === '1') { + mode = 0 + } else { + if(i%2 !== 0) ret += a + } + } + }) + return ret.length === 0? "EMPTY" : ret +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181934.\342\200\205\354\241\260\352\261\264\342\200\205\353\254\270\354\236\220\354\227\264/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181934.\342\200\205\354\241\260\352\261\264\342\200\205\353\254\270\354\236\220\354\227\264/README.md" new file mode 100644 index 0000000..ae9e7b5 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181934.\342\200\205\354\241\260\352\261\264\342\200\205\353\254\270\354\236\220\354\227\264/README.md" @@ -0,0 +1,95 @@ +# [level 0] 조건 문자열 - 181934 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181934) + +### 성능 요약 + +메모리: 33.4 MB, 시간: 0.09 ms + +### 구분 + +코딩테스트 연습 > 코딩 기초 트레이닝 + +### 채점결과 + +정확성: 100.0문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.
+ +n과 m이라면
+
+n >= mn <= mn > mn < m 두 문자열 ineq와 eq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.
n, m ≤ 100| ineq | +eq | +n | +m | +result | +
|---|---|---|---|---|
| "<" | +"=" | +20 | +50 | +1 | +
| ">" | +"!" | +41 | +78 | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +※ 2023.05.31 테스트 케이스가 수정되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181934.\342\200\205\354\241\260\352\261\264\342\200\205\353\254\270\354\236\220\354\227\264/\354\241\260\352\261\264\342\200\205\353\254\270\354\236\220\354\227\264.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181934.\342\200\205\354\241\260\352\261\264\342\200\205\353\254\270\354\236\220\354\227\264/\354\241\260\352\261\264\342\200\205\353\254\270\354\236\220\354\227\264.js" new file mode 100644 index 0000000..23213bf --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181934.\342\200\205\354\241\260\352\261\264\342\200\205\353\254\270\354\236\220\354\227\264/\354\241\260\352\261\264\342\200\205\353\254\270\354\236\220\354\227\264.js" @@ -0,0 +1,5 @@ +function solution(ineq, eq, n, m) { + const operator = eq === '!' ? `${ineq}` : `${ineq}${eq}`; + const func = new Function('a', 'b', `return a ${operator} b;`); + return func(n,m)? 1:0 +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181941.\342\200\205\353\254\270\354\236\220\342\200\205\353\246\254\354\212\244\355\212\270\353\245\274\342\200\205\353\254\270\354\236\220\354\227\264\353\241\234\342\200\205\353\263\200\355\231\230\355\225\230\352\270\260/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181941.\342\200\205\353\254\270\354\236\220\342\200\205\353\246\254\354\212\244\355\212\270\353\245\274\342\200\205\353\254\270\354\236\220\354\227\264\353\241\234\342\200\205\353\263\200\355\231\230\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..cb02bcf --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181941.\342\200\205\353\254\270\354\236\220\342\200\205\353\246\254\354\212\244\355\212\270\353\245\274\342\200\205\353\254\270\354\236\220\354\227\264\353\241\234\342\200\205\353\263\200\355\231\230\355\225\230\352\270\260/README.md" @@ -0,0 +1,53 @@ +# [level 0] 문자 리스트를 문자열로 변환하기 - 181941 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181941) + +### 성능 요약 + +메모리: 33.4 MB, 시간: 0.02 ms + +### 구분 + +코딩테스트 연습 > 코딩 기초 트레이닝 + +### 채점결과 + +정확성: 100.0문자들이 담겨있는 배열 arr가 주어집니다. arr의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성해 주세요.
arr의 길이 ≤ 200
+
+arr의 원소는 전부 알파벳 소문자로 이루어진 길이가 1인 문자열입니다.| arr | +result | +
|---|---|
| ["a","b","c"] | +"abc" | +
길이가 같은 두 문자열 str1과 str2가 주어집니다.
두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.
+ +str1의 길이 = str2의 길이 ≤ 10
+
+str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.| str1 | +str2 | +result | +
|---|---|---|
| "aaaaa" | +"bbbbb" | +"ababababab" | +
문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000s ≤ my_string의 길이 - overwrite_string의 길이| my_string | +overwrite_string | +s | +result | +
|---|---|---|---|
| "He11oWor1d" | +"lloWorl" | +2 | +"HelloWorld" | +
| "Program29b8UYP" | +"merS123" | +7 | +"ProgrammerS123" | +
입출력 예 #1
+ +my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.입출력 예 #2
+ +my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를 return 합니다.영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
str의 길이 ≤ 20
+
+str은 알파벳으로 이루어진 문자열입니다.입력 #1
+aBcDeFg
+출력 #1
+AbCdEfG
+※2023년 05월 03일 제한사항이 수정되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181949.\342\200\205\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\260\224\352\277\224\354\204\234\342\200\205\354\266\234\353\240\245\355\225\230\352\270\260/\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\260\224\352\277\224\354\204\234\342\200\205\354\266\234\353\240\245\355\225\230\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181949.\342\200\205\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\260\224\352\277\224\354\204\234\342\200\205\354\266\234\353\240\245\355\225\230\352\270\260/\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\260\224\352\277\224\354\204\234\342\200\205\354\266\234\353\240\245\355\225\230\352\270\260.js" new file mode 100644 index 0000000..adf5d20 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/0/181949.\342\200\205\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\260\224\352\277\224\354\204\234\342\200\205\354\266\234\353\240\245\355\225\230\352\270\260/\353\214\200\354\206\214\353\254\270\354\236\220\342\200\205\353\260\224\352\277\224\354\204\234\342\200\205\354\266\234\353\240\245\355\225\230\352\270\260.js" @@ -0,0 +1,18 @@ +const readline = require('readline'); +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout +}); + +let input = []; + +rl.on('line', function (line) { + input = [line]; +}).on('close',function() { + str = input[0]; + output = ""; + for (i = 0; i정수 a와 b가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요.
a, b ≤ 100,000입력 #1
+4 5
+출력 #1
+a = 4
+b = 5
+문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.
str의 길이 ≤ 1,000,000str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.입력 #1
+HelloWorld!
+출력 #1
+HelloWorld!
+단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
+ +| s | +return | +
|---|---|
| "abcde" | +"c" | +
| "qwer" | +"we" | +
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,
+ +배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.
+ +| arr | +answer | +
|---|---|
| [1,1,3,3,0,1,1] | +[1,3,0,1] | +
| [4,4,4,3,3] | +[4,3] | +
입출력 예 #1,2
+문제의 예시와 같습니다.
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
+ +| strings | +n | +return | +
|---|---|---|
| ["sun", "bed", "car"] | +1 | +["car", "bed", "sun"] | +
| ["abce", "abcd", "cdx"] | +2 | +["abcd", "abce", "cdx"] | +
입출력 예 1
+"sun", "bed", "car"의 1번째 인덱스 값은 각각 "u", "e", "a" 입니다. 이를 기준으로 strings를 정렬하면 ["car", "bed", "sun"] 입니다.
입출력 예 2
+"abce"와 "abcd", "cdx"의 2번째 인덱스 값은 "c", "c", "x"입니다. 따라서 정렬 후에는 "cdx"가 가장 뒤에 위치합니다. "abce"와 "abcd"는 사전순으로 정렬하면 "abcd"가 우선하므로, 답은 ["abcd", "abce", "cdx"] 입니다.
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
+s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
| s | +return | +
|---|---|
| "Zbcdefg" | +"gfedcbZ" | +
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
+ +s는 길이 1 이상, 길이 8 이하인 문자열입니다.s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.| s | +return | +
|---|---|
| "a234" | +false | +
| "1234" | +true | +
힌트가 필요한가요? [코딩테스트 연습 힌트 모음집]으로 오세요! → 클릭
+ +길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.
+ +| n | +return | +
|---|---|
| 3 | +"수박수" | +
| 4 | +"수박수박" | +
어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요.
+ +| s | +n | +result | +
|---|---|---|
| "AB" | +1 | +"BC" | +
| "z" | +1 | +"a" | +
| "a B z" | +4 | +"e F d" | +
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
+ +n은 0 이상 3000이하인 정수입니다.| n | +return | +
|---|---|
| 12 | +28 | +
| 5 | +6 | +
입출력 예 #1
+12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #2
+5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
+ +| s | +return | +
|---|---|
| "try hello world" | +"TrY HeLlO WoRlD" | +
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
+ +힌트가 필요한가요? [코딩테스트 연습 힌트 모음집]으로 오세요! → 클릭
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/12930.\342\200\205\354\235\264\354\203\201\355\225\234\342\200\205\353\254\270\354\236\220\342\200\205\353\247\214\353\223\244\352\270\260/\354\235\264\354\203\201\355\225\234\342\200\205\353\254\270\354\236\220\342\200\205\353\247\214\353\223\244\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/12930.\342\200\205\354\235\264\354\203\201\355\225\234\342\200\205\353\254\270\354\236\220\342\200\205\353\247\214\353\223\244\352\270\260/\354\235\264\354\203\201\355\225\234\342\200\205\353\254\270\354\236\220\342\200\205\353\247\214\353\223\244\352\270\260.js" new file mode 100644 index 0000000..a7bcdec --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/12930.\342\200\205\354\235\264\354\203\201\355\225\234\342\200\205\353\254\270\354\236\220\342\200\205\353\247\214\353\223\244\352\270\260/\354\235\264\354\203\201\355\225\234\342\200\205\353\254\270\354\236\220\342\200\205\353\247\214\353\223\244\352\270\260.js" @@ -0,0 +1,11 @@ +function solution(s) { + var answer = ''; + let arr = s.split(' ') + for(let i=0; i두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.
+ +| n | +m | +return | +
|---|---|---|
| 3 | +12 | +[3, 12] | +
| 2 | +5 | +[1, 10] | +
입출력 예 #1
+위의 설명과 같습니다.
입출력 예 #2
+자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다.
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
+ +| arr1 | +arr2 | +return | +
|---|---|---|
| [[1,2],[2,3]] | +[[3,4],[5,6]] | +[[4,6],[7,9]] | +
| [[1],[2]] | +[[3],[4]] | +[[4],[6]] | +
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
+별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
입력
+5 3
+출력
+*****
+*****
+*****
+S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다.
+ +물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다.
+ +부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요.
+ +| d | +budget | +result | +
|---|---|---|
| [1,3,2,5,4] | +9 | +3 | +
| [2,2,3,3] | +10 | +4 | +
입출력 예 #1
+각 부서에서 [1원, 3원, 2원, 5원, 4원]만큼의 금액을 신청했습니다. 만약에, 1원, 2원, 4원을 신청한 부서의 물품을 구매해주면 예산 9원에서 7원이 소비되어 2원이 남습니다. 항상 정확히 신청한 금액만큼 지원해 줘야 하므로 남은 2원으로 나머지 부서를 지원해 주지 않습니다. 위 방법 외에 3개 부서를 지원해 줄 방법들은 다음과 같습니다.
3개 부서보다 더 많은 부서의 물품을 구매해 줄 수는 없으므로 최대 3개 부서의 물품을 구매해 줄 수 있습니다.
+ +입출력 예 #2
+모든 부서의 물품을 구매해주면 10원이 됩니다. 따라서 최대 4개 부서의 물품을 구매해 줄 수 있습니다.
한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다.
+ +한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세요.
number의 길이 ≤ 13number의 각 원소 ≤ 1,000| number | +result | +
|---|---|
| [-2, 3, 0, 2, -5] | +2 | +
| [-3, -2, -1, 0, 1, 2, 3] | +5 | +
| [-1, 1, -1, 1] | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다.
+ +++ +정답은 아무에게도 말하지 마세요.
+ +콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가?
+ +단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다.
+
문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 수 있습니다. 이 경우 상빈이는 총 10 + 5 + 2 + 1 + 1 = 19병의 콜라를 받을 수 있습니다.
+ +문제를 열심히 풀던 상빈이는 일반화된 콜라 문제를 생각했습니다. 이 문제는 빈 병 a개를 가져다주면 콜라 b병을 주는 마트가 있을 때, 빈 병 n개를 가져다주면 몇 병을 받을 수 있는지 계산하는 문제입니다. 기존 콜라 문제와 마찬가지로, 보유 중인 빈 병이 a개 미만이면, 추가적으로 빈 병을 받을 순 없습니다. 상빈이는 열심히 고심했지만, 일반화된 콜라 문제의 답을 찾을 수 없었습니다. 상빈이를 도와, 일반화된 콜라 문제를 해결하는 프로그램을 만들어 주세요.
콜라를 받기 위해 마트에 주어야 하는 병 수 a, 빈 병 a개를 가져다 주면 마트가 주는 콜라 병 수 b, 상빈이가 가지고 있는 빈 병의 개수 n이 매개변수로 주어집니다. 상빈이가 받을 수 있는 콜라의 병 수를 return 하도록 solution 함수를 작성해주세요.
b < a ≤ n ≤ 1,000,000| a | +b | +n | +result | +
|---|---|---|---|
| 2 | +1 | +20 | +19 | +
| 3 | +1 | +20 | +9 | +
입출력 예 #1
+ +입출력 예 #2
+ +수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다.
+ +이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를 위해 수웅이는 음식을 주문했는데, 대회의 조건을 고려하지 않고 음식을 주문하여 몇 개의 음식은 대회에 사용하지 못하게 되었습니다.
+ +예를 들어, 3가지의 음식이 준비되어 있으며, 칼로리가 적은 순서대로 1번 음식을 3개, 2번 음식을 4개, 3번 음식을 6개 준비했으며, 물을 편의상 0번 음식이라고 칭한다면, 두 선수는 1번 음식 1개, 2번 음식 2개, 3번 음식 3개씩을 먹게 되므로 음식의 배치는 "1223330333221"이 됩니다. 따라서 1번 음식 1개는 대회에 사용하지 못합니다.
+ +수웅이가 준비한 음식의 양을 칼로리가 적은 순서대로 나타내는 정수 배열 food가 주어졌을 때, 대회를 위한 음식의 배치를 나타내는 문자열을 return 하는 solution 함수를 완성해주세요.
food의 길이 ≤ 9food의 각 원소 ≤ 1,000food에는 칼로리가 적은 순서대로 음식의 양이 담겨 있습니다.food[i]는 i번 음식의 수입니다.food[0]은 수웅이가 준비한 물의 양이며, 항상 1입니다.| food | +result | +
|---|---|
| [1, 3, 4, 6] | +"1223330333221" | +
| [1, 7, 1, 2] | +"111303111" | +
입출력 예 #1
+ +입출력 예 #2
+ +"명예의 전당"이라는 TV 프로그램에서는 매일 1명의 가수가 노래를 부르고, 시청자들의 문자 투표수로 가수에게 점수를 부여합니다. 매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올려 기념합니다. 즉 프로그램 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 됩니다. k일 다음부터는 출연 가수의 점수가 기존의 명예의 전당 목록의 k번째 순위의 가수 점수보다 더 높으면, 출연 가수의 점수가 명예의 전당에 오르게 되고 기존의 k번째 순위의 점수는 명예의 전당에서 내려오게 됩니다.
+ +이 프로그램에서는 매일 "명예의 전당"의 최하위 점수를 발표합니다. 예를 들어, k = 3이고, 7일 동안 진행된 가수의 점수가 [10, 100, 20, 150, 1, 100, 200]이라면, 명예의 전당에서 발표된 점수는 아래의 그림과 같이 [10, 10, 10, 20, 20, 100, 100]입니다.

명예의 전당 목록의 점수의 개수 k, 1일부터 마지막 날까지 출연한 가수들의 점수인 score가 주어졌을 때, 매일 발표된 명예의 전당의 최하위 점수를 return하는 solution 함수를 완성해주세요.
k ≤ 100score의 길이 ≤ 1,000
+
+score[i] ≤ 2,000| k | +score | +result | +
|---|---|---|
| 3 | +[10, 100, 20, 150, 1, 100, 200] | +[10, 10, 10, 20, 20, 100, 100] | +
| 4 | +[0, 300, 40, 300, 20, 70, 150, 50, 500, 1000] | +[0, 0, 0, 0, 20, 40, 70, 70, 150, 300] | +
입출력 예 #1
+ +입출력 예 #2
+ +
문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.
+예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다.
따라서 최종 결과물은 [-1, -1, -1, 2, 2, 2]가 됩니다.
+ +문자열 s이 주어질 때, 위와 같이 정의된 연산을 수행하는 함수 solution을 완성해주세요.
s의 길이 ≤ 10,000
+
+s은 영어 소문자로만 이루어져 있습니다.| s | +result | +
|---|---|
| "banana" | +[-1, -1, -1, 2, 2, 2] | +
| "foobar" | +[-1, -1, 1, -1, -1, -1] | +
입출력 예 #1
+지문과 같습니다.
입출력 예 #2
+설명 생략
숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.
예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.
p의 길이 ≤ 18p의 길이 ≤ t의 길이 ≤ 10,000t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다.| t | +p | +result | +
|---|---|---|
| "3141592" | +"271" | +2 | +
| "500220839878" | +"7" | +8 | +
| "10203" | +"15" | +3 | +
입출력 예 #1
+본문과 같습니다.
입출력 예 #2
+p의 길이가 1이므로 t의 부분문자열은 "5", "0", 0", "2", "2", "0", "8", "3", "9", "8", "7", "8"이며 이중 7보다 작거나 같은 숫자는 "5", "0", "0", "2", "2", "0", "3", "7" 이렇게 8개가 있습니다.
입출력 예 #3
+p의 길이가 2이므로 t의 부분문자열은 "10", "02", "20", "03"이며, 이중 15보다 작거나 같은 숫자는 "10", "02", "03" 이렇게 3개입니다. "02"와 "03"은 각각 2, 3에 해당한다는 점에 주의하세요
코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다.
+ +예를 들어 첫 번째 카드 뭉치에 순서대로 ["i", "drink", "water"], 두 번째 카드 뭉치에 순서대로 ["want", "to"]가 적혀있을 때 ["i", "want", "to", "drink", "water"] 순서의 단어 배열을 만들려고 한다면 첫 번째 카드 뭉치에서 "i"를 사용한 후 두 번째 카드 뭉치에서 "want"와 "to"를 사용하고 첫 번째 카드뭉치에 "drink"와 "water"를 차례대로 사용하면 원하는 순서의 단어 배열을 만들 수 있습니다.
+ +문자열로 이루어진 배열 cards1, cards2와 원하는 단어 배열 goal이 매개변수로 주어질 때, cards1과 cards2에 적힌 단어들로 goal를 만들 있다면 "Yes"를, 만들 수 없다면 "No"를 return하는 solution 함수를 완성해주세요.
cards1의 길이, cards2의 길이 ≤ 10
+
+cards1[i]의 길이, cards2[i]의 길이 ≤ 10cards1과 cards2에는 서로 다른 단어만 존재합니다.goal의 길이 ≤ cards1의 길이 + cards2의 길이
+
+goal[i]의 길이 ≤ 10goal의 원소는 cards1과 cards2의 원소들로만 이루어져 있습니다.cards1, cards2, goal의 문자열들은 모두 알파벳 소문자로만 이루어져 있습니다.| cards1 | +cards2 | +goal | +result | +
|---|---|---|---|
| ["i", "drink", "water"] | +["want", "to"] | +["i", "want", "to", "drink", "water"] | +"Yes" | +
| ["i", "water", "drink"] | +["want", "to"] | +["i", "want", "to", "drink", "water"] | +"No" | +
입출력 예 #1
+ +본문과 같습니다.
+ +입출력 예 #2
+ +cards1에서 "i"를 사용하고 cards2에서 "want"와 "to"를 사용하여 "i want to"까지는 만들 수 있지만 "water"가 "drink"보다 먼저 사용되어야 하기 때문에 해당 문장을 완성시킬 수 없습니다. 따라서 "No"를 반환합니다.
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
+ +마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
+ +| participant | +completion | +return | +
|---|---|---|
| ["leo", "kiki", "eden"] | +["eden", "kiki"] | +"leo" | +
| ["marina", "josipa", "nikola", "vinko", "filipa"] | +["josipa", "filipa", "marina", "nikola"] | +"vinko" | +
| ["mislav", "stanko", "mislav", "ana"] | +["stanko", "ana", "mislav"] | +"mislav" | +
예제 #1
+"leo"는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.
예제 #2
+"vinko"는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.
예제 #3
+"mislav"는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.
※ 공지 - 2023년 01월 25일 테스트케이스가 추가되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/42576.\342\200\205\354\231\204\354\243\274\355\225\230\354\247\200\342\200\205\353\252\273\355\225\234\342\200\205\354\204\240\354\210\230/\354\231\204\354\243\274\355\225\230\354\247\200\342\200\205\353\252\273\355\225\234\342\200\205\354\204\240\354\210\230.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/42576.\342\200\205\354\231\204\354\243\274\355\225\230\354\247\200\342\200\205\353\252\273\355\225\234\342\200\205\354\204\240\354\210\230/\354\231\204\354\243\274\355\225\230\354\247\200\342\200\205\353\252\273\355\225\234\342\200\205\354\204\240\354\210\230.js" new file mode 100644 index 0000000..4048f4a --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/42576.\342\200\205\354\231\204\354\243\274\355\225\230\354\247\200\342\200\205\353\252\273\355\225\234\342\200\205\354\204\240\354\210\230/\354\231\204\354\243\274\355\225\230\354\247\200\342\200\205\353\252\273\355\225\234\342\200\205\354\204\240\354\210\230.js" @@ -0,0 +1,32 @@ +const hashfunc = (str) => { + let hashValue = 0; + const p = 31; + const m = 1000000007; + let pPow = 1; + + for (let i = 0; i < str.length; i++) { + hashValue = (hashValue + (str.charCodeAt(i) * pPow) % m) % m; + pPow = (pPow * p) % m; + } + return hashValue; +} + +function solution(participant, completion) { + const hashTable = new Map(); + + for (let winner of completion) { + const hash = hashfunc(winner); + hashTable.set(hash, (hashTable.get(hash) || 0) + 1); + } + + for (let parts of participant) { + const hash = hashfunc(parts); + const count = hashTable.get(hash) || 0; + + if (count > 0) { + hashTable.set(hash, count - 1); + } else { + return parts; + } + } +} diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/42840.\342\200\205\353\252\250\354\235\230\352\263\240\354\202\254/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/42840.\342\200\205\353\252\250\354\235\230\352\263\240\354\202\254/README.md" new file mode 100644 index 0000000..20bb780 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/1/42840.\342\200\205\353\252\250\354\235\230\352\263\240\354\202\254/README.md" @@ -0,0 +1,75 @@ +# [level 1] 모의고사 - 42840 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/42840) + +### 성능 요약 + +메모리: 36.4 MB, 시간: 26.80 ms + +### 구분 + +코딩테스트 연습 > 완전탐색 + +### 채점결과 + +정확성: 100.0수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.
+ +1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
+2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
+3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...
1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요.
+ +| answers | +return | +
|---|---|
| [1,2,3,4,5] | +[1] | +
| [1,3,2,4,2] | +[1,2,3] | +
입출력 예 #1
+ +따라서 가장 문제를 많이 맞힌 사람은 수포자 1입니다.
+ +입출력 예 #2
+ +게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다.
+"죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다.

게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이때 바구니의 가장 아래 칸부터 인형이 순서대로 쌓이게 됩니다. 다음 그림은 [1번, 5번, 3번] 위치에서 순서대로 인형을 집어 올려 바구니에 담은 모습입니다.
+ +
만약 같은 모양의 인형 두 개가 바구니에 연속해서 쌓이게 되면 두 인형은 터뜨려지면서 바구니에서 사라지게 됩니다. 위 상태에서 이어서 [5번] 위치에서 인형을 집어 바구니에 쌓으면 같은 모양 인형 두 개가 없어집니다.
+ +
크레인 작동 시 인형이 집어지지 않는 경우는 없으나 만약 인형이 없는 곳에서 크레인을 작동시키는 경우에는 아무런 일도 일어나지 않습니다. 또한 바구니는 모든 인형이 들어갈 수 있을 만큼 충분히 크다고 가정합니다. (그림에서는 화면표시 제약으로 5칸만으로 표현하였음)
+ +게임 화면의 격자의 상태가 담긴 2차원 배열 board와 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열 moves가 매개변수로 주어질 때, 크레인을 모두 작동시킨 후 터트려져 사라진 인형의 개수를 return 하도록 solution 함수를 완성해주세요.
+ +| board | +moves | +result | +
|---|---|---|
| [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] | +[1,5,3,5,1,2,1,4] | +4 | +
입출력 예 #1
+ +인형의 처음 상태는 문제에 주어진 예시와 같습니다. 크레인이 [1, 5, 3, 5, 1, 2, 1, 4] 번 위치에서 차례대로 인형을 집어서 바구니에 옮겨 담은 후, 상태는 아래 그림과 같으며 바구니에 담는 과정에서 터트려져 사라진 인형은 4개 입니다.
+ +
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
+ +| numbers | +result | +
|---|---|
[2,1,3,4,1] |
+[2,3,4,5,6,7] |
+
[5,0,2,7] |
+[2,5,7,9,12] |
+
입출력 예 #1
+ +[2,3,4,5,6,7] 을 return 해야 합니다.입출력 예 #2
+ +[2,5,7,9,12] 를 return 해야 합니다.자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
+ +| n | +result | +
|---|---|
| 45 | +7 | +
| 125 | +229 | +
입출력 예 #1
+ +| n (10진법) | +n (3진법) | +앞뒤 반전(3진법) | +10진법으로 표현 | +
|---|---|---|---|
| 45 | +1200 | +0021 | +7 | +
입출력 예 #2
+ +| n (10진법) | +n (3진법) | +앞뒤 반전(3진법) | +10진법으로 표현 | +
|---|---|---|---|
| 125 | +11122 | +22111 | +229 | +
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
left ≤ right ≤ 1,000| left | +right | +result | +
|---|---|---|
| 13 | +17 | +43 | +
| 24 | +27 | +52 | +
입출력 예 #1
+ +| 수 | +약수 | +약수의 개수 | +
|---|---|---|
| 13 | +1, 13 | +2 | +
| 14 | +1, 2, 7, 14 | +4 | +
| 15 | +1, 3, 5, 15 | +4 | +
| 16 | +1, 2, 4, 8, 16 | +5 | +
| 17 | +1, 17 | +2 | +
입출력 예 #2
+ +| 수 | +약수 | +약수의 개수 | +
|---|---|---|
| 24 | +1, 2, 3, 4, 6, 8, 12, 24 | +8 | +
| 25 | +1, 5, 25 | +3 | +
| 26 | +1, 2, 13, 26 | +4 | +
| 27 | +1, 3, 9, 27 | +4 | +

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
+다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.
+| 숫자 | +영단어 | +
|---|---|
| 0 | +zero | +
| 1 | +one | +
| 2 | +two | +
| 3 | +three | +
| 4 | +four | +
| 5 | +five | +
| 6 | +six | +
| 7 | +seven | +
| 8 | +eight | +
| 9 | +nine | +
s의 길이 ≤ 50s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.s로 주어집니다.| s | +result | +
|---|---|
"one4seveneight" |
+1478 | +
"23four5six7" |
+234567 | +
"2three45sixseven" |
+234567 | +
"123" |
+123 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +입출력 예 #4
+ +s에는 영단어로 바뀐 부분이 없습니다.명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다.
+ +아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다.
+| 명함 번호 | +가로 길이 | +세로 길이 | +
|---|---|---|
| 1 | +60 | +50 | +
| 2 | +30 | +70 | +
| 3 | +60 | +30 | +
| 4 | +80 | +40 | +
가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑 크기는 4000(=80 x 50)입니다.
+ +모든 명함의 가로 길이와 세로 길이를 나타내는 2차원 배열 sizes가 매개변수로 주어집니다. 모든 명함을 수납할 수 있는 가장 작은 지갑을 만들 때, 지갑의 크기를 return 하도록 solution 함수를 완성해주세요.
+ +| sizes | +result | +
|---|---|
| [[60, 50], [30, 70], [60, 30], [80, 40]] | +4000 | +
| [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] | +120 | +
| [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] | +133 | +
입출력 예 #1
+문제 예시와 같습니다.
입출력 예 #2
+명함들을 적절히 회전시켜 겹쳤을 때, 3번째 명함(가로: 8, 세로: 15)이 다른 모든 명함보다 크기가 큽니다. 따라서 지갑의 크기는 3번째 명함의 크기와 같으며, 120(=8 x 15)을 return 합니다.
입출력 예 #3
+명함들을 적절히 회전시켜 겹쳤을 때, 모든 명함을 포함하는 가장 작은 지갑의 크기는 133(=19 x 7)입니다.
신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.
+ +다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "neo"]이고, k = 2(즉, 2번 이상 신고당하면 이용 정지)인 경우의 예시입니다.
+| 유저 ID | +유저가 신고한 ID | +설명 | +
|---|---|---|
| "muzi" | +"frodo" | +"muzi"가 "frodo"를 신고했습니다. | +
| "apeach" | +"frodo" | +"apeach"가 "frodo"를 신고했습니다. | +
| "frodo" | +"neo" | +"frodo"가 "neo"를 신고했습니다. | +
| "muzi" | +"neo" | +"muzi"가 "neo"를 신고했습니다. | +
| "apeach" | +"muzi" | +"apeach"가 "muzi"를 신고했습니다. | +
각 유저별로 신고당한 횟수는 다음과 같습니다.
+| 유저 ID | +신고당한 횟수 | +
|---|---|
| "muzi" | +1 | +
| "frodo" | +2 | +
| "apeach" | +0 | +
| "neo" | +2 | +
위 예시에서는 2번 이상 신고당한 "frodo"와 "neo"의 게시판 이용이 정지됩니다. 이때, 각 유저별로 신고한 아이디와 정지된 아이디를 정리하면 다음과 같습니다.
+| 유저 ID | +유저가 신고한 ID | +정지된 ID | +
|---|---|---|
| "muzi" | +["frodo", "neo"] | +["frodo", "neo"] | +
| "frodo" | +["neo"] | +["neo"] | +
| "apeach" | +["muzi", "frodo"] | +["frodo"] | +
| "neo" | +없음 | +없음 | +
따라서 "muzi"는 처리 결과 메일을 2회, "frodo"와 "apeach"는 각각 처리 결과 메일을 1회 받게 됩니다.
+ +이용자의 ID가 담긴 문자열 배열 id_list, 각 이용자가 신고한 이용자의 ID 정보가 담긴 문자열 배열 report, 정지 기준이 되는 신고 횟수 k가 매개변수로 주어질 때, 각 유저별로 처리 결과 메일을 받은 횟수를 배열에 담아 return 하도록 solution 함수를 완성해주세요.
id_list의 길이 ≤ 1,000
+
+id_list의 원소 길이 ≤ 10id_list의 원소는 이용자의 id를 나타내는 문자열이며 알파벳 소문자로만 이루어져 있습니다.id_list에는 같은 아이디가 중복해서 들어있지 않습니다.report의 길이 ≤ 200,000
+
+report의 원소 길이 ≤ 21report의 원소는 "이용자id 신고한id"형태의 문자열입니다.k ≤ 200, k는 자연수입니다.id_list에 담긴 id 순서대로 각 유저가 받은 결과 메일 수를 담으면 됩니다.| id_list | +report | +k | +result | +
|---|---|---|---|
["muzi", "frodo", "apeach", "neo"] |
+["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"] |
+2 | +[2,1,1,0] | +
["con", "ryan"] |
+["ryan con", "ryan con", "ryan con", "ryan con"] |
+3 | +[0,0] | +
입출력 예 #1
+ +문제의 예시와 같습니다.
+ +입출력 예 #2
+ +"ryan"이 "con"을 4번 신고했으나, 주어진 조건에 따라 한 유저가 같은 유저를 여러 번 신고한 경우는 신고 횟수 1회로 처리합니다. 따라서 "con"은 1회 신고당했습니다. 3번 이상 신고당한 이용자는 없으며, "con"과 "ryan"은 결과 메일을 받지 않습니다. 따라서 [0, 0]을 return 합니다.
+ +문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
+예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
| s | +return | +
|---|---|
| "1 2 3 4" | +"1 4" | +
| "-1 -2 -3 -4" | +"-4 -1" | +
| "-1 -1" | +"-1 -1" | +
2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요.
+ +| arr1 | +arr2 | +return | +
|---|---|---|
| [[1, 4], [3, 2], [4, 1]] | +[[3, 3], [3, 3]] | +[[15, 15], [15, 15], [15, 15]] | +
| [[2, 3, 2], [4, 2, 4], [3, 1, 4]] | +[[5, 4, 3], [2, 4, 1], [3, 1, 1]] | +[[22, 22, 11], [36, 28, 18], [29, 20, 14]] | +
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다.
+ +예를 들어, 문자열 S = baabaa 라면
b aa baa → bb aa → aa →
+ +의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다.
+ +| s | +result | +
|---|---|
| baabaa | +1 | +
| cdcd | +0 | +
입출력 예 #1
+위의 예시와 같습니다.
+입출력 예 #2
+문자열이 남아있지만 짝지어 제거할 수 있는 문자열이 더 이상 존재하지 않기 때문에 0을 반환합니다.
※ 공지 - 2020년 6월 8일 테스트케이스가 추가되었습니다.
+※ 공지 - 2023년 8월 31일 테스트케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.
XYZ 마트는 일정한 금액을 지불하면 10일 동안 회원 자격을 부여합니다. XYZ 마트에서는 회원을 대상으로 매일 한 가지 제품을 할인하는 행사를 합니다. 할인하는 제품은 하루에 하나씩만 구매할 수 있습니다. 알뜰한 정현이는 자신이 원하는 제품과 수량이 할인하는 날짜와 10일 연속으로 일치할 경우에 맞춰서 회원가입을 하려 합니다.
+ +예를 들어, 정현이가 원하는 제품이 바나나 3개, 사과 2개, 쌀 2개, 돼지고기 2개, 냄비 1개이며, XYZ 마트에서 14일간 회원을 대상으로 할인하는 제품이 날짜 순서대로 치킨, 사과, 사과, 바나나, 쌀, 사과, 돼지고기, 바나나, 돼지고기, 쌀, 냄비, 바나나, 사과, 바나나인 경우에 대해 알아봅시다. 첫째 날부터 열흘 간에는 냄비가 할인하지 않기 때문에 첫째 날에는 회원가입을 하지 않습니다. 둘째 날부터 열흘 간에는 바나나를 원하는 만큼 할인구매할 수 없기 때문에 둘째 날에도 회원가입을 하지 않습니다. 셋째 날, 넷째 날, 다섯째 날부터 각각 열흘은 원하는 제품과 수량이 일치하기 때문에 셋 중 하루에 회원가입을 하려 합니다.
+ +정현이가 원하는 제품을 나타내는 문자열 배열 want와 정현이가 원하는 제품의 수량을 나타내는 정수 배열 number, XYZ 마트에서 할인하는 제품을 나타내는 문자열 배열 discount가 주어졌을 때, 회원등록시 정현이가 원하는 제품을 모두 할인 받을 수 있는 회원등록 날짜의 총 일수를 return 하는 solution 함수를 완성하시오. 가능한 날이 없으면 0을 return 합니다.
want의 길이 = number의 길이 ≤ 10
+
+number의 원소 ≤ 10number[i]는 want[i]의 수량을 의미하며, number의 원소의 합은 10입니다.discount의 길이 ≤ 100,000want와 discount의 원소들은 알파벳 소문자로 이루어진 문자열입니다.
+
+want의 원소의 길이, discount의 원소의 길이 ≤ 12| want | +number | +discount | +result | +
|---|---|---|---|
| ["banana", "apple", "rice", "pork", "pot"] | +[3, 2, 2, 2, 1] | +["chicken", "apple", "apple", "banana", "rice", "apple", "pork", "banana", "pork", "rice", "pot", "banana", "apple", "banana"] | +3 | +
| ["apple"] | +[10] | +["banana", "banana", "banana", "banana", "banana", "banana", "banana", "banana", "banana", "banana"] | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +※ 공지 - 2024년 1월 26일 문제 지문의 오탈자가 수정되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/131127.\342\200\205\355\225\240\354\235\270\342\200\205\355\226\211\354\202\254/\355\225\240\354\235\270\342\200\205\355\226\211\354\202\254.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/131127.\342\200\205\355\225\240\354\235\270\342\200\205\355\226\211\354\202\254/\355\225\240\354\235\270\342\200\205\355\226\211\354\202\254.js" new file mode 100644 index 0000000..873bfd4 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/131127.\342\200\205\355\225\240\354\235\270\342\200\205\355\226\211\354\202\254/\355\225\240\354\235\270\342\200\205\355\226\211\354\202\254.js" @@ -0,0 +1,10 @@ +function solution(want, number, discount) { + const n = Number(number.join('')) + let count = 0; + for (let i=0; i프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.
+ +또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.
+ +먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.
+ +| progresses | +speeds | +return | +
|---|---|---|
| [93, 30, 55] | +[1, 30, 5] | +[2, 1] | +
| [95, 90, 99, 99, 80, 99] | +[1, 1, 1, 1, 1, 1] | +[1, 3, 2] | +
입출력 예 #1
+첫 번째 기능은 93% 완료되어 있고 하루에 1%씩 작업이 가능하므로 7일간 작업 후 배포가 가능합니다.
+두 번째 기능은 30%가 완료되어 있고 하루에 30%씩 작업이 가능하므로 3일간 작업 후 배포가 가능합니다. 하지만 이전 첫 번째 기능이 아직 완성된 상태가 아니기 때문에 첫 번째 기능이 배포되는 7일째 배포됩니다.
+세 번째 기능은 55%가 완료되어 있고 하루에 5%씩 작업이 가능하므로 9일간 작업 후 배포가 가능합니다.
따라서 7일째에 2개의 기능, 9일째에 1개의 기능이 배포됩니다.
+ +입출력 예 #2
+모든 기능이 하루에 1%씩 작업이 가능하므로, 작업이 끝나기까지 남은 일수는 각각 5일, 10일, 1일, 1일, 20일, 1일입니다. 어떤 기능이 먼저 완성되었더라도 앞에 있는 모든 기능이 완성되지 않으면 배포가 불가능합니다.
따라서 5일째에 1개의 기능, 10일째에 3개의 기능, 20일째에 2개의 기능이 배포됩니다.
+ +※ 공지 - 2020년 7월 14일 테스트케이스가 추가되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/42586.\342\200\205\352\270\260\353\212\245\352\260\234\353\260\234/\352\270\260\353\212\245\352\260\234\353\260\234.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/42586.\342\200\205\352\270\260\353\212\245\352\260\234\353\260\234/\352\270\260\353\212\245\352\260\234\353\260\234.js" new file mode 100644 index 0000000..50eacb4 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/42586.\342\200\205\352\270\260\353\212\245\352\260\234\353\260\234/\352\270\260\353\212\245\352\260\234\353\260\234.js" @@ -0,0 +1,46 @@ +function solution(progresses, speeds) { + const answer = []; + const len = progresses.length; + + const days = progresses.map((progress,i) => Math.ceil((100 - progress)/speeds[i])) + + let count = 0; + let hill = days[0] + for (let i=0; i카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다.
+ +신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다.
+ +"[닉네임]님이 들어왔습니다."
+ +채팅방에서 누군가 나가면 다음 메시지가 출력된다.
+ +"[닉네임]님이 나갔습니다."
+ +채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다.
+ +닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다.
+ +예를 들어, 채팅방에 "Muzi"와 "Prodo"라는 닉네임을 사용하는 사람이 순서대로 들어오면 채팅방에는 다음과 같이 메시지가 출력된다.
+ +"Muzi님이 들어왔습니다."
+"Prodo님이 들어왔습니다."
채팅방에 있던 사람이 나가면 채팅방에는 다음과 같이 메시지가 남는다.
+ +"Muzi님이 들어왔습니다."
+"Prodo님이 들어왔습니다."
+"Muzi님이 나갔습니다."
Muzi가 나간후 다시 들어올 때, Prodo 라는 닉네임으로 들어올 경우 기존에 채팅방에 남아있던 Muzi도 Prodo로 다음과 같이 변경된다.
+ +"Prodo님이 들어왔습니다."
+"Prodo님이 들어왔습니다."
+"Prodo님이 나갔습니다."
+"Prodo님이 들어왔습니다."
채팅방은 중복 닉네임을 허용하기 때문에, 현재 채팅방에는 Prodo라는 닉네임을 사용하는 사람이 두 명이 있다. 이제, 채팅방에 두 번째로 들어왔던 Prodo가 Ryan으로 닉네임을 변경하면 채팅방 메시지는 다음과 같이 변경된다.
+ +"Prodo님이 들어왔습니다."
+"Ryan님이 들어왔습니다."
+"Prodo님이 나갔습니다."
+"Prodo님이 들어왔습니다."
채팅방에 들어오고 나가거나, 닉네임을 변경한 기록이 담긴 문자열 배열 record가 매개변수로 주어질 때, 모든 기록이 처리된 후, 최종적으로 방을 개설한 사람이 보게 되는 메시지를 문자열 배열 형태로 return 하도록 solution 함수를 완성하라.
+ +1 이상 100,000 이하이다.1 이상 10 이하이다.| record | +result | +
|---|---|
["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"] |
+["Prodo님이 들어왔습니다.", "Ryan님이 들어왔습니다.", "Prodo님이 나갔습니다.", "Prodo님이 들어왔습니다."] |
+
입출력 예 #1
+문제의 설명과 같다.
다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다.
+ +(), [], {} 는 모두 올바른 괄호 문자열입니다.A가 올바른 괄호 문자열이라면, (A), [A], {A} 도 올바른 괄호 문자열입니다. 예를 들어, [] 가 올바른 괄호 문자열이므로, ([]) 도 올바른 괄호 문자열입니다.A, B가 올바른 괄호 문자열이라면, AB 도 올바른 괄호 문자열입니다. 예를 들어, {} 와 ([]) 가 올바른 괄호 문자열이므로, {}([]) 도 올바른 괄호 문자열입니다.대괄호, 중괄호, 그리고 소괄호로 이루어진 문자열 s가 매개변수로 주어집니다. 이 s를 왼쪽으로 x (0 ≤ x < (s의 길이)) 칸만큼 회전시켰을 때 s가 올바른 괄호 문자열이 되게 하는 x의 개수를 return 하도록 solution 함수를 완성해주세요.
| s | +result | +
|---|---|
"[](){}" |
+3 | +
"}]()[{" |
+2 | +
"[)(]" |
+0 | +
"}}}" |
+0 | +
입출력 예 #1
+ +"[](){}" 를 회전시킨 모습을 나타낸 것입니다.| x | +s를 왼쪽으로 x칸만큼 회전 | +올바른 괄호 문자열? | +
|---|---|---|
| 0 | +"[](){}" |
+O | +
| 1 | +"](){}[" |
+X | +
| 2 | +"(){}[]" |
+O | +
| 3 | +"){}[](" |
+X | +
| 4 | +"{}[]()" |
+O | +
| 5 | +"}[](){" |
+X | +
입출력 예 #2
+ +"}]()[{" 를 회전시킨 모습을 나타낸 것입니다.| x | +s를 왼쪽으로 x칸만큼 회전 | +올바른 괄호 문자열? | +
|---|---|---|
| 0 | +"}]()[{" |
+X | +
| 1 | +"]()[{}" |
+X | +
| 2 | +"()[{}]" |
+O | +
| 3 | +")[{}](" |
+X | +
| 4 | +"[{}]()" |
+O | +
| 5 | +"{}]()[" |
+X | +
입출력 예 #3
+ +입출력 예 #4
+ +※ 공지 - 2021년 4월 16일 테스트케이스가 추가되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/76502.\342\200\205\352\264\204\355\230\270\342\200\205\355\232\214\354\240\204\355\225\230\352\270\260/\352\264\204\355\230\270\342\200\205\355\232\214\354\240\204\355\225\230\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/76502.\342\200\205\352\264\204\355\230\270\342\200\205\355\232\214\354\240\204\355\225\230\352\270\260/\352\264\204\355\230\270\342\200\205\355\232\214\354\240\204\355\225\230\352\270\260.js" new file mode 100644 index 0000000..c5463a0 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/2/76502.\342\200\205\352\264\204\355\230\270\342\200\205\355\232\214\354\240\204\355\225\230\352\270\260/\352\264\204\355\230\270\342\200\205\355\232\214\354\240\204\355\225\230\352\270\260.js" @@ -0,0 +1,28 @@ +function solution(s) { + let open = "([{"; + let close = ")]}"; + let answer = 0; + + for (let i = 0; i < s.length; i++) { + let stack = []; + let isValid = true; + + for (let j = 0; j < s.length; j++) { + let current = s[(i + j) % s.length]; + + if (open.includes(current)) { + stack.push(current); + } else { + if (stack.length === 0 || stack.pop() !== open[close.indexOf(current)]) { + isValid = false; + break; + } + } + } + + if (isValid && stack.length === 0) { + answer++; + } + } + return answer; +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120835.\342\200\205\354\247\204\353\243\214\342\200\205\354\210\234\354\204\234\342\200\205\354\240\225\355\225\230\352\270\260/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120835.\342\200\205\354\247\204\353\243\214\342\200\205\354\210\234\354\204\234\342\200\205\354\240\225\355\225\230\352\270\260/README.md" new file mode 100644 index 0000000..fc429cb --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120835.\342\200\205\354\247\204\353\243\214\342\200\205\354\210\234\354\204\234\342\200\205\354\240\225\355\225\230\352\270\260/README.md" @@ -0,0 +1,77 @@ +# [level 0] 진료 순서 정하기 - 120835 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/120835) + +### 성능 요약 + +메모리: 33.5 MB, 시간: 0.05 ms + +### 구분 + +코딩테스트 연습 > 코딩테스트 입문 + +### 채점결과 + +외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
emergency의 길이 ≤ 10emergency의 원소 ≤ 100| emergency | +result | +
|---|---|
| [3, 76, 24] | +[3, 1, 2] | +
| [1, 2, 3, 4, 5, 6, 7] | +[7, 6, 5, 4, 3, 2, 1] | +
| [30, 10, 23, 6, 100] | +[2, 4, 3, 5, 1] | +
입출력 예 #1
+ +emergency가 [3, 76, 24]이므로 응급도의 크기 순서대로 번호를 매긴 [3, 1, 2]를 return합니다.입출력 예 #2
+ +emergency가 [1, 2, 3, 4, 5, 6, 7]이므로 응급도의 크기 순서대로 번호를 매긴 [7, 6, 5, 4, 3, 2, 1]를 return합니다.입출력 예 #3
+ +emergency가 [30, 10, 23, 6, 100]이므로 응급도의 크기 순서대로 번호를 매긴 [2, 4, 3, 5, 1]를 return합니다.머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요.
numbers의 길이 < 100k < 1,000numbers의 첫 번째와 마지막 번호는 실제로 바로 옆에 있습니다.numbers는 1부터 시작하며 번호는 순서대로 올라갑니다.| numbers | +k | +result | +
|---|---|---|
| [1, 2, 3, 4] | +2 | +3 | +
| [1, 2, 3, 4, 5, 6] | +5 | +3 | +
| [1, 2, 3] | +3 | +2 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +※ 공지 - 2023년 1월 25일 테스트 케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120843.\342\200\205\352\263\265\342\200\205\353\215\230\354\247\200\352\270\260/\352\263\265\342\200\205\353\215\230\354\247\200\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120843.\342\200\205\352\263\265\342\200\205\353\215\230\354\247\200\352\270\260/\352\263\265\342\200\205\353\215\230\354\247\200\352\270\260.js" new file mode 100644 index 0000000..bb0f72a --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120843.\342\200\205\352\263\265\342\200\205\353\215\230\354\247\200\352\270\260/\352\263\265\342\200\205\353\215\230\354\247\200\352\270\260.js" @@ -0,0 +1,7 @@ +function solution(numbers, k) { +let thro = 2*k-1; + for(i=0; thro > numbers.length; i++){ + thro -= numbers.length; + } +return numbers[thro-1]; // index 0부터니까 1조정 +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120852.\342\200\205\354\206\214\354\235\270\354\210\230\353\266\204\355\225\264/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120852.\342\200\205\354\206\214\354\235\270\354\210\230\353\266\204\355\225\264/README.md" new file mode 100644 index 0000000..b9b5601 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120852.\342\200\205\354\206\214\354\235\270\354\210\230\353\266\204\355\225\264/README.md" @@ -0,0 +1,75 @@ +# [level 0] 소인수분해 - 120852 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/120852) + +### 성능 요약 + +메모리: 33.5 MB, 시간: 0.21 ms + +### 구분 + +코딩테스트 연습 > 코딩테스트 입문 + +### 채점결과 + +소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
n ≤ 10,000| n | +result | +
|---|---|
| 12 | +[2, 3] | +
| 17 | +[17] | +
| 420 | +[2, 3, 5, 7] | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.
s의 길이 ≤ 200s의 원소 중 숫자 < 1,000s는 숫자, "Z", 공백으로 이루어져 있습니다.s에 있는 숫자와 "Z"는 서로 공백으로 구분됩니다.s는 "Z"로 시작하지 않습니다.s의 시작과 끝에는 공백이 없습니다.| s | +result | +
|---|---|
| "1 2 Z 3" | +4 | +
| "10 20 30 40" | +100 | +
| "10 Z 20 Z 1" | +1 | +
| "10 Z 20 Z" | +0 | +
| "-1 -2 -3 Z" | +-3 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +입출력 예 #4, #5
+ +설명 생략
+ +※ 공지 - 2022년 11월 30일 제한사항 및 테스트 케이스가 수정되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120853.\342\200\205\354\273\250\355\212\270\353\241\244\342\200\205\354\240\234\355\212\270/\354\273\250\355\212\270\353\241\244\342\200\205\354\240\234\355\212\270.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120853.\342\200\205\354\273\250\355\212\270\353\241\244\342\200\205\354\240\234\355\212\270/\354\273\250\355\212\270\353\241\244\342\200\205\354\240\234\355\212\270.js" new file mode 100644 index 0000000..598966c --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120853.\342\200\205\354\273\250\355\212\270\353\241\244\342\200\205\354\240\234\355\212\270/\354\273\250\355\212\270\353\241\244\342\200\205\354\240\234\355\212\270.js" @@ -0,0 +1,17 @@ +function solution(s) { + let array = s.split(' ') + let result = 0 + + return array.reduce((a,c,i) => { + if (array[i+1]==="Z"){ + return a + } + else if(c==="Z"){ + return a + } + else{ + return a + Number(c); + } + },result) + +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120861.\342\200\205\354\272\220\353\246\255\355\204\260\354\235\230\342\200\205\354\242\214\355\221\234/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120861.\342\200\205\354\272\220\353\246\255\355\204\260\354\235\230\342\200\205\354\242\214\355\221\234/README.md" new file mode 100644 index 0000000..b7bf216 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/lv0/120861.\342\200\205\354\272\220\353\246\255\355\204\260\354\235\230\342\200\205\354\242\214\355\221\234/README.md" @@ -0,0 +1,78 @@ +# [level 0] 캐릭터의 좌표 - 120861 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/120861) + +### 성능 요약 + +메모리: 33.5 MB, 시간: 0.07 ms + +### 구분 + +코딩테스트 연습 > 코딩테스트 입문 + +### 채점결과 + +머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요.
board의 정 중앙에 위치합니다. 예를 들어 board의 가로 크기가 9라면 캐릭터는 왼쪽으로 최대 [-4, 0]까지 오른쪽으로 최대 [4, 0]까지 이동할 수 있습니다.board은 [가로 크기, 세로 크기] 형태로 주어집니다.board의 가로 크기와 세로 크기는 홀수입니다.board의 크기를 벗어난 방향키 입력은 무시합니다.keyinput의 길이 ≤ 50board[0] ≤ 99board[1] ≤ 99keyinput은 항상 up, down, left, right만 주어집니다.| keyinput | +board | +result | +
|---|---|---|
| ["left", "right", "up", "right", "right"] | +[11, 11] | +[2, 1] | +
| ["down", "down", "down", "down", "down"] | +[7, 9] | +[0, -4] | +
입출력 예 설명 #1
+ +입출력 예 설명 #2
+ +문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
my_string의 길이 ≤ 1,000my_string 안의 자연수 ≤ 1000| my_string | +result | +
|---|---|
| "aAb1B2cC34oOp" | +37 | +
| "1a2b3c4d123Z" | +133 | +
입출력 예 #1
+ +입출력 예 #2
+ +점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다.
주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요.
+ +dots의 길이 = 4dots의 원소는 [x, y] 형태이며 x, y는 정수입니다.
+
+| dots | +result | +
|---|---|
| [[1, 4], [9, 2], [3, 8], [11, 6]] | +1 | +
| [[3, 5], [4, 1], [2, 4], [5, 10]] | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +※ 공지 - 2022년 9월 30일 제한 사항 및 테스트케이스가 수정되었습니다.
+※ 공지 - 2022년 10월 27일 제한 사항 및 테스트케이스가 수정되었습니다.
정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요.
n ≤ 10,000numlist의 원소 ≤ 10,000numlist의 길이 ≤ 100numlist는 중복된 원소를 갖지 않습니다.| numlist | +n | +result | +
|---|---|---|
| [1, 2, 3, 4, 5, 6] | +4 | +[4, 5, 3, 6, 2, 1] | +
| [10000,20,36,47,40,6,10,7000] | +30 | +[36, 40, 20, 47, 10, 6, 7000, 10000] | +
입출력 예 #1
+ +입출력 예 #2
+ +머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
id_pw의 길이는 2입니다.id_pw와 db의 원소는 [아이디, 패스워드] 형태입니다.db의 길이 ≤ 10db의 원소의 길이는 2입니다.| id_pw | +db | +result | +
|---|---|---|
| ["meosseugi", "1234"] | +[["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]] | +"login" | +
| ["programmer01", "15789"] | +[["programmer02", "111111"], ["programmer00", "134"], ["programmer01", "1145"]] | +"wrong pw" | +
| ["rabbit04", "98761"] | +[["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]] | +"fail" | +
입출력 예 #1
+ +db에 같은 정보의 계정이 있으므로 "login"을 return합니다.입출력 예 #2
+ +db에 아이디는 같지만 패스워드가 다른 계정이 있으므로 "wrong pw"를 return합니다.입출력 예 #3
+ +db에 아이디가 맞는 계정이 없으므로 "fail"을 return합니다.프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.
chicken은 정수입니다.chicken ≤ 1,000,000| chicken | +result | +
|---|---|
| 100 | +11 | +
| 1,081 | +120 | +
입출력 예 #1
+ +입출력 예 #2
+ +1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
i < j ≤ 100,000k ≤ 9| i | +j | +k | +result | +
|---|---|---|---|
| 1 | +13 | +1 | +6 | +
| 10 | +50 | +5 | +5 | +
| 3 | +10 | +2 | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
s의 길이 < 1,000s는 소문자로만 이루어져 있습니다.| s | +result | +
|---|---|
| "abcabcadc" | +"d" | +
| "abdc" | +"abcd" | +
| "hello" | +"eho" | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.
quiz의 길이 ≤ 10| quiz | +result | +
|---|---|
| ["3 - 4 = -3", "5 + 6 = 11"] | +["X", "O"] | +
| ["19 - 6 = 13", "5 + 66 = 71", "5 - 15 = 63", "3 - 1 = 2"] | +["O", "O", "X", "O"] | +
입출력 예 #1
+ +입출력 예 #2
+ +머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.
array의 길이 ≤ 100array의 원소 ≤ 100,000| array | +result | +
|---|---|
| [7, 77, 17] | +4 | +
| [10, 29] | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
my_str의 길이 ≤ 100n ≤ my_str의 길이my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.| my_str | +n | +result | +
|---|---|---|
| "abc1Addfggg4556b" | +6 | +["abc1Ad", "dfggg4", "556b"] | +
| "abcdef123" | +3 | +["abc", "def", "123"] | +
입출력 예 #1
+ +입출력 예 #2
+ +문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
A의 길이 = B의 길이 < 100A, B는 알파벳 소문자로 이루어져 있습니다.| A | +B | +result | +
|---|---|---|
| "hello" | +"ohell" | +1 | +
| "apple" | +"elppa" | +-1 | +
| "atat" | +"tata" | +1 | +
| "abc" | +"abc" | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +입출력 예 #4
+ +머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.
+ +
정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.
M, N < 100| M | +N | +result | +
|---|---|---|
| 2 | +2 | +3 | +
| 2 | +5 | +9 | +
| 1 | +1 | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +입출력 예 #3
+ +자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
+예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
| N | +answer | +
|---|---|
| 123 | +6 | +
| 987 | +24 | +
입출력 예 #1
+문제의 예시와 같습니다.
입출력 예 #2
+9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
+ +| num | +return | +
|---|---|
| 3 | +"Odd" | +
| 4 | +"Even" | +
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
+ +| arr | +return | +
|---|---|
| [1,2,3,4] | +2.5 | +
| [5,5] | +5 | +
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
+ +| x | +n | +answer | +
|---|---|---|
| 2 | +5 | +[2,4,6,8,10] | +
| 4 | +3 | +[4,8,12] | +
| -4 | +2 | +[-4, -8] | +
새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다.
+놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요.
+단, 금액이 부족하지 않으면 0을 return 하세요.
| price | +money | +count | +result | +
|---|---|---|---|
| 3 | +20 | +4 | +10 | +
입출력 예 #1
+이용금액이 3인 놀이기구를 4번 타고 싶은 고객이 현재 가진 금액이 20이라면, 총 필요한 놀이기구의 이용 금액은 30 (= 3+6+9+12) 이 되어 10만큼 부족하므로 10을 return 합니다.
정수 리스트 num_list와 찾으려는 정수 n이 주어질 때, num_list안에 n이 있으면 1을 없으면 0을 return하도록 solution 함수를 완성해주세요.
num_list의 길이 ≤ 100num_list의 원소 ≤ 100n ≤ 100| num_list | +n | +result | +
|---|---|---|
| [1, 2, 3, 4, 5] | +3 | +1 | +
| [15, 98, 23, 2, 15] | +20 | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요.
n ≤ 10000| n | +result | +
|---|---|
| 123 | +"123" | +
| 2573 | +"2573" | +
입출력 예 #1
+ +입출력 예 #2
+ +숫자로만 이루어진 문자열 n_str이 주어질 때, n_str을 정수로 변환하여 return하도록 solution 함수를 완성해주세요.
n_str ≤ 5n_str은 0부터 9까지의 정수 문자로만 이루어져 있습니다.| n_str | +result | +
|---|---|
| "10" | +10 | +
| "8542" | +8542 | +
입출력 예 #1
+ +입출력 예 #2
+ +한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자리수의 합을 return하도록 solution 함수를 완성해주세요.
num_str ≤ 100| num_str | +result | +
|---|---|
| "123456789" | +45 | +
| "1000000" | +1 | +
입출력 예 #1
+ +입출력 예 #2
+ +실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return하도록 solution 함수를 완성해주세요.
flo ≤ 100| flo | +result | +
|---|---|
| 1.42 | +1 | +
| 69.32 | +69 | +
입출력 예 #1
+ +입출력 예 #2
+ +아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.
arr의 길이 ≤ 100arr의 원소 ≤ 100| arr | +result | +
|---|---|
| [5, 1, 4] | +[5, 5, 5, 5, 5, 1, 4, 4, 4, 4] | +
| [6, 6] | +[6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] | +
| [1] | +[1] | +
입출력 예 #1
+ +예제 1번에 대해서 a와 X를 나타내보면 다음 표와 같습니다.
+| a | +X | +
|---|---|
| + | [] | +
| 5 | +[5, 5, 5, 5, 5] | +
| 1 | +[5, 5, 5, 5, 5, 1] | +
| 4 | +[5, 5, 5, 5, 5, 1, 4, 4, 4, 4] | +
따라서 [5, 5, 5, 5, 5, 1, 4, 4, 4, 4]를 return 합니다.
입출력 예 #2
+ +예제 2번에 대해서 a와 X를 나타내보면 다음 표와 같습니다.
+| a | +X | +
|---|---|
| + | [] | +
| 6 | +[6, 6, 6, 6, 6, 6] | +
| 6 | +[6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] | +
따라서 [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]를 return 합니다.
입출력 예 #3
+ +예제 2번에 대해서 a와 X를 나타내보면 다음 표와 같습니다.
+| a | +X | +
|---|---|
| + | [] | +
| 1 | +[1] | +
따라서 [1]을 return 합니다.
영소문자로 이루어진 문자열 my_string과 영소문자 1글자로 이루어진 문자열 alp가 매개변수로 주어질 때, my_string에서 alp에 해당하는 모든 글자를 대문자로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
my_string의 길이 ≤ 1,000| my_string | +alp | +result | +
|---|---|---|
| "programmers" | +"p" | +"Programmers" | +
| "lowercase" | +"x" | +"lowercase" | +
입출력 예 #1
+ +my_string은 "programmers"이고 alp가 "p"이므로 my_string에 모든 p를 대문자인 P로 바꾼 문자열 "Programmers"를 return 합니다.입출력 예 #2
+ +alp는 "x"이고 my_string에 x는 없습니다. 따라서 "lowercase"를 return 합니다.알파벳으로 이루어진 문자열 myString이 주어집니다. 모든 알파벳을 대문자로 변환하여 return 하는 solution 함수를 완성해 주세요.
myString의 길이 ≤ 100,000
+
+myString은 알파벳으로 이루어진 문자열입니다.| myString | +result | +
|---|---|
| "aBcDeFg" | +"ABCDEFG" | +
| "AAA" | +"AAA" | +
알파벳으로 이루어진 문자열 myString과 pat이 주어집니다. myString의 연속된 부분 문자열 중 pat이 존재하면 1을 그렇지 않으면 0을 return 하는 solution 함수를 완성해 주세요.
단, 알파벳 대문자와 소문자는 구분하지 않습니다.
+ +myString의 길이 ≤ 100,000pat의 길이 ≤ 300myString과 pat은 모두 알파벳으로 이루어진 문자열입니다.| myString | +pat | +return | +
|---|---|---|
| "AbCdEfG" | +"aBc" | +1 | +
| "aaAA" | +"aaaaa" | +0 | +
입출력 예 #1
+ +pat인 "aBc"와 같습니다. 따라서 1을 return 합니다.입출력 예 #2
+ +myString의 길이가 pat보다 더 짧기 때문에 myString의 부분 문자열 중 pat와 같은 문자열이 있을 수 없습니다. 따라서 0을 return 합니다.※2023년 05월 15일 제한사항이 수정되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/unrated/181878.\342\200\205\354\233\220\355\225\230\353\212\224\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\354\260\276\352\270\260/\354\233\220\355\225\230\353\212\224\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\354\260\276\352\270\260.js" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/unrated/181878.\342\200\205\354\233\220\355\225\230\353\212\224\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\354\260\276\352\270\260/\354\233\220\355\225\230\353\212\224\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\354\260\276\352\270\260.js" new file mode 100644 index 0000000..27db963 --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/unrated/181878.\342\200\205\354\233\220\355\225\230\353\212\224\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\354\260\276\352\270\260/\354\233\220\355\225\230\353\212\224\342\200\205\353\254\270\354\236\220\354\227\264\342\200\205\354\260\276\352\270\260.js" @@ -0,0 +1,4 @@ +function solution(myString, pat) { + if(myString.toLowerCase().includes(pat.toLowerCase())) return 1 + return 0 +} \ No newline at end of file diff --git "a/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/unrated/181879.\342\200\205\352\270\270\354\235\264\354\227\220\342\200\205\353\224\260\353\245\270\342\200\205\354\227\260\354\202\260/README.md" "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/unrated/181879.\342\200\205\352\270\270\354\235\264\354\227\220\342\200\205\353\224\260\353\245\270\342\200\205\354\227\260\354\202\260/README.md" new file mode 100644 index 0000000..c12f0fd --- /dev/null +++ "b/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244/unrated/181879.\342\200\205\352\270\270\354\235\264\354\227\220\342\200\205\353\224\260\353\245\270\342\200\205\354\227\260\354\202\260/README.md" @@ -0,0 +1,66 @@ +# [unrated] 길이에 따른 연산 - 181879 + +[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181879) + +### 성능 요약 + +메모리: 33.4 MB, 시간: 0.04 ms + +### 구분 + +코딩테스트 연습 > 코딩 기초 트레이닝 + +### 채점결과 + +정확성: 100.0정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.
num_list의 길이 ≤ 20num_list의 원소 ≤ 9| num_list | +result | +
|---|---|
| [3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1] | +51 | +
| [2, 3, 4, 5] | +120 | +
입출력 예 #1
+ +입출력 예 #2
+ +정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱합니다. 그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요.
arr의 길이 ≤ 1,000,000
+
+arr의 원소의 값 ≤ 100| arr | +result | +
|---|---|
| [1, 2, 3, 100, 99, 98] | +[2, 2, 6, 50, 99, 49] | +
입출력 예 #1
+ +정수 배열 numbers와 정수 n이 매개변수로 주어집니다. numbers의 원소를 앞에서부터 하나씩 더하다가 그 합이 n보다 커지는 순간 이때까지 더했던 원소들의 합을 return 하는 solution 함수를 작성해 주세요.
numbers의 길이 ≤ 100numbers의 원소 ≤ 100numbers의 모든 원소의 합| numbers | +n | +result | +
|---|---|---|
| [34, 5, 71, 29, 100, 34] | +123 | +139 | +
| [58, 44, 27, 10, 100] | +139 | +239 | +
입출력 예 #1
+ +예제 1번의 numbers를 문제 설명대로 더해가는 과정을 나타내면 다음의 표와 같습니다.
| i | +numbers[i] | +sum | +
|---|---|---|
| + | + | 0 | +
| 0 | +34 | +34 | +
| 1 | +5 | +39 | +
| 2 | +71 | +110 | +
| 3 | +29 | +139 | +
29를 더한 뒤에 sum 값은 139이고 n 값인 123보다 크므로 139를 return 합니다.
예제 2번의 numbers의 마지막 원소 전까지의 원소를 sum에 더하면 139입니다. 139는 n 값인 139보다 크지 않고 마지막 원소인 100을 더하면 139보다 커지므로 239를 return 합니다.
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
num_list의 길이 ≤ 20num_list의 원소 ≤ 9n ≤ 4| num_list | +n | +result | +
|---|---|---|
| [4, 2, 6, 1, 7, 6] | +2 | +[4, 6, 7] | +
| [4, 2, 6, 1, 7, 6] | +4 | +[4, 7] | +
입출력 예 #1
+ +입출력 예 #2
+ +정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
num_list의 길이 ≤ 30num_list의 원소 ≤ 9n ≤ num_list의 길이
+___| num_list | +n | +result | +
|---|---|---|
| [2, 1, 6] | +1 | +[2] | +
| [5, 2, 1, 7, 5] | +3 | +[5, 2, 1] | +
입출력 예 #1
+ +입출력 예 #2
+ +정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
num_list의 길이 ≤ 30num_list의 원소 ≤ 9n ≤ num_list의 길이| num_list | +n | +result | +
|---|---|---|
| [2, 1, 6] | +3 | +[6] | +
| [5, 2, 1, 7, 5] | +2 | +[2, 1, 7, 5] | +
입출력 예 #1
+ +입출력 예 #2
+ +정수 리스트 num_list가 주어질 때, 첫 번째로 나오는 음수의 인덱스를 return하도록 solution 함수를 완성해주세요. 음수가 없다면 -1을 return합니다.
num_list의 길이 ≤ 100num_list의 원소 ≤ 100| num_list | +result | +
|---|---|
| [12, 4, 15, 46, 38, -2, 15] | +5 | +
| [13, 22, 53, 24, 15, 6] | +-1 | +
입출력 예 #1
+ +입출력 예 #2
+ +정수 n과 k가 주어졌을 때, 1 이상 n이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
n ≤ 1,000,000k ≤ min(1,000, n)| n | +k | +result | +
|---|---|---|
| 10 | +3 | +[3, 6, 9] | +
| 15 | +5 | +[5, 10, 15] | +
입출력 예 #1
+ +입출력 예 #2
+ +어떤 문자열에 대해서 접두사는 특정 인덱스까지의 문자열을 의미합니다. 예를 들어, "banana"의 모든 접두사는 "b", "ba", "ban", "bana", "banan", "banana"입니다.
+문자열 my_string과 is_prefix가 주어질 때, is_prefix가 my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.
my_string의 길이 ≤ 100is_prefix의 길이 ≤ 100my_string과 is_prefix는 영소문자로만 이루어져 있습니다.| my_string | +is_prefix | +result | +
|---|---|---|
| "banana" | +"ban" | +1 | +
| "banana" | +"nan" | +0 | +
| "banana" | +"abcd" | +0 | +
| "banana" | +"bananan" | +0 | +
입출력 예 #1
+ +is_prefix가 my_string의 접두사이기 때문에 1을 return 합니다.입출력 예 #2
+ +is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.입출력 예 #3
+ +is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.입출력 예 #4
+ +is_prefix가 my_string의 접두사가 아니기 때문에 0을 return 합니다.문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
my_string은 숫자와 알파벳으로 이루어져 있습니다.my_string의 길이 ≤ 1,000n ≤ my_string의 길이| my_string | +n | +result | +
|---|---|---|
| "ProgrammerS123" | +11 | +"ProgrammerS" | +
| "He110W0r1d" | +5 | +"He110" | +
입출력 예 #1
+ +my_string에서 앞의 11글자는 "ProgrammerS"이므로 이 문자열을 return 합니다.입출력 예 #2
+ +my_string에서 앞의 5글자는 "He110"이므로 이 문자열을 return 합니다.어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
+문자열 my_string과 is_suffix가 주어질 때, is_suffix가 my_string의 접미사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.
my_string의 길이 ≤ 100is_suffix의 길이 ≤ 100my_string과 is_suffix는 영소문자로만 이루어져 있습니다.| my_string | +is_suffix | +result | +
|---|---|---|
| "banana" | +"ana" | +1 | +
| "banana" | +"nan" | +0 | +
| "banana" | +"wxyz" | +0 | +
| "banana" | +"abanana" | +0 | +
입출력 예 #1
+ +is_suffix가 my_string의 접미사이기 때문에 1을 return 합니다.입출력 예 #2
+ +is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.입출력 예 #3
+ +is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.입출력 예 #4
+ +is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 뒤의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
my_string은 숫자와 알파벳으로 이루어져 있습니다.my_string의 길이 ≤ 1,000n ≤ my_string의 길이| my_string | +n | +result | +
|---|---|---|
| "ProgrammerS123" | +11 | +"grammerS123" | +
| "He110W0r1d" | +5 | +"W0r1d" | +
입출력 예 #1
+ +my_string에서 뒤의 11글자는 "grammerS123"이므로 이 문자열을 return 합니다.입출력 예 #2
+ +my_string에서 뒤의 5글자는 "W0r1d"이므로 이 문자열을 return 합니다.문자열 my_string과 정수 배열 index_list가 매개변수로 주어집니다. my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
my_string의 길이 ≤ 1,000my_string의 원소는 영소문자로 이루어져 있습니다.index_list의 길이 ≤ 1,000index_list의 원소 < my_string의 길이| my_string | +index_list | +result | +
|---|---|---|
| "cvsgiorszzzmrpaqpe" | +[16, 6, 5, 3, 12, 14, 11, 11, 17, 12, 7] | +"programmers" | +
| "zpiaz" | +[1, 2, 0, 0, 3] | +"pizza" | +
입출력 예 #1
+ +my_string에서 인덱스 3, 5, 6, 11, 12, 14, 16, 17에 해당하는 글자는 각각 g, o, r, m, r, a, p, e이므로 my_string에서 index_list에 들어있는 원소에 해당하는 인덱스의 글자들은 각각 순서대로 p, r, o, g, r, a, m, m, e, r, s입니다. 따라서 "programmers"를 return 합니다.입출력 예 #2
+ +my_string에서 인덱스 0, 1, 2, 3에 해당하는 글자는 각각 z, p, i, a이므로 my_string에서 index_list에 들어있는 원소에 해당하는 인덱스의 글자들은 각각 순서대로 p, i, z, z, a입니다. 따라서 "pizza"를 return 합니다.정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요.
num_list의 길이 ≤ 10num_list의 원소 ≤ 9| num_list | +result | +
|---|---|
| [2, 1, 6] | +[2, 1, 6, 5] | +
| [5, 2, 1, 7, 5] | +[5, 2, 1, 7, 5, 10] | +
입출력 예 #1
+ +입출력 예 #2
+ +정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.
num_list의 길이 ≤ 10num_list의 원소 ≤ 9num_list에는 적어도 한 개씩의 짝수와 홀수가 있습니다.| num_list | +result | +
|---|---|
| [3, 4, 5, 2, 1] | +393 | +
| [5, 7, 8, 3] | +581 | +
입출력 예 #1
+ +입출력 예 #2
+ +두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.
a, b ≤ 1,000| a | +b | +flag | +result | +
|---|---|---|---|
| -4 | +7 | +true | +3 | +
| -4 | +7 | +false | +-11 | +
입출력 예 #1
+ +flag가 true이므로 a + b = (-4) + 7 = 3을 return 합니다.입출력 예 #2
+ +flag가 false이므로 a - b = (-4) - 7 = -11을 return 합니다.정수 number와 n, m이 주어집니다. number가 n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.
number ≤ 100n, m < 10| number | +n | +m | +result | +
|---|---|---|---|
| 60 | +2 | +3 | +1 | +
| 55 | +10 | +5 | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +정수 num과 n이 매개 변수로 주어질 때, num이 n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.
num ≤ 100n ≤ 9| num | +n | +result | +
|---|---|---|
| 98 | +2 | +1 | +
| 34 | +3 | +0 | +
입출력 예 #1
+ +입출력 예 #2
+ +연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
+ +양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.
a, b < 10,000| a | +b | +result | +
|---|---|---|
| 9 | +91 | +991 | +
| 89 | +8 | +898 | +
입출력 예 #1
+ +a ⊕ b = 991 이고, b ⊕ a = 919 입니다. 둘 중 더 큰 값은 991 이므로 991을 return 합니다.입출력 예 #2
+ +a ⊕ b = 898 이고, b ⊕ a = 889 입니다. 둘 중 더 큰 값은 898 이므로 898을 return 합니다.문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요.
my_string의 길이 ≤ 100my_string은 영소문자로만 이루어져 있습니다.k ≤ 100| my_string | +k | +result | +
|---|---|---|
| "string" | +3 | +"stringstringstring" | +
| "love" | +10 | +"lovelovelovelovelovelovelovelovelovelove" | +
입출력 예 #1
+ +my_string은 "string"이고 이를 3번 반복한 문자열은 "stringstringstring"이므로 이를 return 합니다.입출력 예 #2
+ +my_string은 "love"이고 이를 10번 반복한 문자열은 "lovelovelovelovelovelovelovelovelovelove"이므로 이를 return 합니다.두 개의 문자열 str1, str2가 공백으로 구분되어 입력으로 주어집니다.
+입출력 예와 같이 str1과 str2을 이어서 출력하는 코드를 작성해 보세요.
str1, str2의 길이 ≤ 10입력 #1
+apple pen
+출력 #1
+applepen
+입력 #2
+Hello World!
+출력 #2
+HelloWorld!
+