Algorithm
-
[백준/JS] 18258번_큐2Algorithm 2023. 12. 13. 15:33
https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net [ 문제 풀이 과정 ] 아래 코드는 switch문을 활용했지만 시간 초과가 떴다. const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(e=>e.replace("\r","")); const a = input[0]; const que = []; const answer =..
-
[백준/JS] 1874번_스택 수열Algorithm 2023. 12. 12. 22:04
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net [ 문제 설명 ] 스택에 수를 push 할 때는 반드시 오름차순으로만 push할 수 있다. 예를 들어, 4를 push해야 한다면 1~4까지를 모두 push하고 4를 push할 수 있다. 그리고 스택을 쌓다가 필요한 타이밍에 pop을 하게 되는데, 이 pop을 한 수들을 쭉 나열했을 때, N줄에 걸쳐 입력한 수열과 같..
-
[백준/JS] 10828번_스택Algorithm 2023. 12. 12. 17:30
https://www.acmicpc.net/problem/10828 [10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net](https://www.acmicpc.net/problem/10828) [ 문제 설명 ] 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출..
-
[백준/JS] 9012번_괄호Algorithm 2023. 12. 12. 16:21
https://www.acmicpc.net/problem/9012 [ 문제 설명 ] 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “((..
-
[2023 KAKAO BLIND RECRUITMENT] 개인정보 수집 유효기간Algorithm 2023. 12. 12. 14:11
https://school.programmers.co.kr/learn/courses/30/lessons/150370 [ 문제 설명 ] 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다. 당신은 오늘 날짜로 파기해..
-
[ 프로그래머스 Lv. 2] 최댓값과 최솟값Algorithm 2023. 11. 10. 14:25
[ 문제 설명 ] 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. [ 제한 조건 ] s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. [ 입출력 예 ] s return "1 2 3 4" "1 4" "-1 -2 -3 -4" "-4 -1" "-1 -1" "-1 -1" [ 문제 풀이 과정 ] M1 ) 아래는 내 풀이로 실행 결과 정답으로 통과했다. split(' ') 함수를 사용해서 문자열을 ' ' 기준으로 배열요소로 바꿔줬고, 그 후 ..
-
[ 프로그래머스 Lv. 1] 약수의 개수와 덧셈Algorithm 2023. 11. 6. 15:28
[ 문제 설명 ] 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. [ 제한 조건 ] 1 ≤ left ≤ right ≤ 1,000 [ 입출력 예 ] 수 약수 약수의 개수 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 따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 합니다. [ 문제 풀이 과정 ] 아래는 초기 오류가 났던 코드이다. 이중 for문을 사용해 left부터 right 까지의 각각의 약수의 수를 셀 수 있도록 짰지만 제..
-
[프로그래머스 Lv. 1] 수박수박수박수박수박수?Algorithm 2023. 10. 31. 13:57
[ 문제 설명 ] 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. [ 제한 조건 ] n은 길이 10,000이하인 자연수입니다. [ 입출력 예 ] n return 3 "수박수" 4 "수박수박" [ 문제 풀이 ] 1. Array(3).fill(0) : [0, 0, 0] - 사용해서 전체 글자 길이(n)만큼 배열안에 0 채우기 2. map 함수 사용해서 0을 수박수~ 글자로 바꾸기 ✔️ 각 인덱스를 2로 나눈 나머지 값은 0 또는 1 밖에 안나오는 점 이용! 3. join 함수로 , 로 나눠진 글자 합치기 function solution(n) { const..