본문 바로가기
  • 삽질하는 자의 블로그
8. [실전] - 문자열 나누기 문제 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다. 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, "x"와 "x가 아닌 다른 글자들이 나온 횟수"를 각각 셉니다. "처음으로 두 횟수가 같아지는 순간 멈추고", "지금까지 읽은 문자열을 분리합니다." s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다. 남은 부분이 없다면 종료합니다. 만약 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없다면, 역시 지금까지 읽은 문자열을 분리하고, 종료합니다. 문자열 s가 매개변수로 주어질 때, 위 과정과 같이 문자열들로 분해하고, 분해한 문자열의 개수를 return 하는 함수 solution을 완성하세요. s는 영어 소문자로만 이루어져 있습니다. 예시 s result "banana" 3 ".. 2023. 1. 18.
7. [실전] - 우박수열 문제 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2.결과로 나온 수가 1보다 크다면 1번 작업을 반복합니다. 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒2 ⇒ 1 우박수열을 좌표 평면 위에 꺾은선 그래프로 나타내보려고 합니다. 초항이 K인 우박수열이 있다면, x = 0일때 y = K이고 다음 우박수는 x = 1에 표시합니다. 이런 식으로 우박수가 1이 될 때까지 점들을 찍고 인접한 점들끼리 직선으로 연결하면 다음과 같이 꺾은선 그래프를 만들 수 있습니다. 이렇게 만든 꺾은선 그래프를 정적분 해보고 싶어졌습니다. x에 대한 어떤 범위 [a, b]가 주어진다면 이 범위에 대한 정적분 결과는 꺾은선 그래프와 x = a, x = b, y = 0 으로 둘러 쌓인 공.. 2023. 1. 18.
6. [실전] - 연속 부분 수열 합의 개수 문제 어느 날 철호는 어떤 "자연수로 이루어진" "원형 수열"의 "연속하는 부분 수열의 합" 으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 "일반적인 수열에서 처음과 끝이 연결된 형태의 수열"을 말합니다. 예를 들어 수열 [7, 9, 1, 1, 4] 로 원형 수열을 만들면 다음과 같습니다. 4 7 1 9 1 원형 수열은 처음과 끝이 연결되어 끊기는 부분이 없기 때문에 연속하는 부분 수열도 일반적인 수열보다 많아집니다. 원형 수열의 모든 원소 elements가 순서대로 주어질 때, "원형 수열의 연속 부분 수열 합으로 만들 수 있는 수의 개수"를 return 하도록 solution 함수를 완성해주세요. 예시 [입출력 예] elements result [7,9,1,1,4] .. 2023. 1. 18.
5. [실전] - 귤 고르기 문제 귤을 크기별로 분류했을때, 서로 다른 종류의 개수를 최소화 하려 한다. 예로 귤을 8 개 수확했는데, 크기가 [1,3,2,5,4,5,2,3] 이였다. 귤을 6개 판매하고 싶다면, 크기가 1,4인 귤을 제외한 6개를 담으면 귤을 크기는 2,3,5 로 총 3가지가 되며, 이때 서로 다른 종류가 최소다 즉, 중복되는 숫자가 가장 적은 귤을 하나씩 제거하면 되겠다. 상자에 담으려는 귤의 갯수 k 귤의 크기를 담은 배열 tangerline 이 주어질때, 귤 k 개를 고를때, "서로다른 종류의 수의 최솟값"을 return 해보자 예시 ktangerine result 6[1, 3, 2, 5, 4, 5, 2, 3]3 // 2,3,5 (1,4가 제일적음) 4[1, 3, 2, 5, 4, 5, 2, 3]2 // 5 ,.. 2023. 1. 18.
3. [실전] - 가장 가까운 글자찾기 문제 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다. n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다. a는 자신보다 두 칸, 네 칸 앞에 a가 있습니다.. 2023. 1. 18.
2. [실전] - 연속되는 자연수 배열중 빈 숫자 찾기 문제 1. -10000 ~ 10000 까지의 정수배열 A 에 대하여, 최소 값은 1이며, 배열중 비어있는 수중 가장 작은 수를 구하기 예시 A = [1,2,3,4]// 5 A = [1,2,3,5,6]// 4 A = [-20,-1]// 1 A = [1,3,6]// 2 프로세스 1. max 값이 - 면 1을 반환한다. 2. 이외에는 하나씩 올려가며 찾는다. 3. 찾았으면 break 로 중지하고, 반환한다. 사용 1. for문 2. break 내코드 function solution(A) { let answer; for (let i = 1; i < 100000; i++) { // for문 돌리고 answer = i;// 몇번 돌렸나 answer if (Math.max(A) 2023. 1. 18.
1. [이론] 자주 쓰는 패턴 총 정리 - 배열편 배열 1. 배열의 문자 검색후 인덱스반환 - indexOf, lastIndexOf() indexOf("string") indexOf("string", 시작index ) lastIndexOf("string") // 뒤에서 부터 검색 lastIndexOf("string", 시작index) // num 자리부터 왼쪽으로 검색 * lastIndexOf 는 뒤의 숫자를 2 라고 하면, index 2 부터 좌측으로 검색한다. 예시 const beasts = ['ant', 'bison', 'camel', 'duck', 'bison']; console.log(beasts.indexOf('bison'));// 1 console.log(beasts.indexOf('bison', 2));// 4 2. 배열의 범위지정 - S.. 2023. 1. 18.