728x90

분류 전체보기 186

[역추적검색(Backtracking) | JavaScript] 10810 공 넣기

https://prpn97.tistory.com/72 [Baekjoon | JavaScript] 10810 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 prpn97.tistory.com **위 링크에 해당 문제가 있습니다. 조건에 따라 배열의 요소를 갱신하고 이전 요소는 상관이 없어지는 문제를 푸는데, 애초에 그 값을 구하지 않아도 되는데 굳이 반복을 하는 부분이 있다고 생각이 들었다. 문제로 예를 들어 순서대로 풀게 되면 다음과 같다. 3 3 0 0 0 3 3 4 4 0 1 1 1 1 0 1 2 1 1 0 3과 4를 처음에 추가하지만, 결과값인 ..

[백준 | JavaScript] 10810 공 넣기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 들어있지 않으며, 바구니에는 공을 1개만 넣을 수 있다. 도현이는 앞으로 M번 공을 넣으려고 한다. 도현이는 한 번 공을 넣을 때, 공을 넣을 바구니 범위를 정하고, 정한 바구니에 모두 같은 번호가 적혀있는 공을 넣는다. 만약, 바구니에 공이 이미 있는 경우에는 들어있는 공을 빼고, 새로 공을 넣는다. 공을 넣을 바구니는 연속되어 있어야 한다. 공을 어떻게 넣을지가 주어졌을 때, M번 공을 넣은 이후에 각 바구니에 어떤 공이 들어 있는지 구하는 프로그램을 작성하시오. const fs = require("fs");..

[백준 | JavaScript] 1110 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. input ans..

[프로그래머스 | JavaScript] 꼬리 문자열

function solution(str_list, ex) { var answer = ''; for(let i = 0; i < str_list.length; i++){ if(!str_list[i].includes(ex)){ answer+=str_list[i] } } return answer; } str_list의 요소를 돌며 ex가 포함되지 않으면 answer에 더했다. 프로젝트 준비하면서 잠시 쉴 때 기초문제는 금방 푸니까 하나씩 풀고 있는데, 바로 위 설명처럼 아주 간단하게 설명할 수 있게 풀게 되어서 포스팅한다. 예전이였다면 조건 앞에 ! 붙이는 것조차 까먹거나 모르고 있어서 문제 푸는데 오래걸렸을 것 같은데, 그래도 조금은 나아진 것 같다. 이젠 정말 알고리즘에 집중해야지~~

[엘리스트랙 SW 4기 | 2차 스터디] 2차 스터디.. 프로젝트로 결정!

1차 프로젝트에서 처음으로 api를 만들면서 부족했던 부분도 너무 많고, 사실 이해하지 못한 채로 진행된 부분들이 있다보니 2차프로젝트를 진행하기 전에 다시금 정리할 겸, 2차스터디를 프로젝트를 하는쪽으로 고민하고 있었다. 챗gpt api를 이용한 프로젝트를 참여하게 되었는데, 사실 api가 이미 다 있다보니 정말 스터디를 목적으로, 간단하게 돌아보는 차원에서 프로젝트를 참여할 계획이였는데, 조금씩 달라지고 있는 것 같다...^^ 나빼고 프론트, 백 둘다 능력이 있는 분들이셔서 그저 챗gpt에 의존해서 api를 만들지 않아도 될 것 같아서 기대가 된다! 기본적으로 api명세서를 이번에는 같이 작성했고, 그것들을 기반으로 각자 포지션을 정했는데, 아무래도 이전에 고생하며 이해안되면서도 막 오류 수정하고....

[프로그래머스 | JavaScript] 조건에 맞게 수열 변환하기 1 (삼항연산자 간단 예제)

정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱합니다. 그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요. function solution(arr) { const answer = []; for (let i = 0; i = 50 && arr[i] % 2 === 0 ? arr[i] / 2 : arr[i] < 50 && arr[i] % 2 === 1 ? arr[i] * 2 : arr[i] ); } return answer; } 문제 설명 그대로, 50이상의 짝수는 arr[i] /2, 50미만의 홀수는 arr[i]*2,..

[조합] 공 뽑는 간단한 예시

A 주머니에는 빨간 공 2개, 검은 공 2개가 들어있고, B 주머니에는 빨간 공 3개, 검은 공 1개가 들어있다. 주사위를 던져 3의 배수가 나오면 A주머니에서 공을 2개 꺼내고, 3의 배수가 나오지 않으면 B주머니에서 공을 2개 꺼낼 때, 주사위를 던져서 빨간 공과 검은 공을 1개씩 뽑을 확률을 고르시오. 1. 1/2 2. 9/5 3. 11/18 4.2/3 5. 13/18 주사위의 눈금 중 3의 배수는 3,6이므로 A주머니에서 공을 뽑을 확률은 2/6 = 1/3, B주머니에서 공을 뽑을 확률은 2/3이다. A주머니에는 빨간 공 2개, 검은 공 2개가 들어있고, B주머니에는 빨간 공 3개, 검은 공 1개가 들어 있으므로 각 주머니에서 2개의 공을 꺼냈을 때, 빨간 공과 검은..

[프로그래머스 | JavaScript] 비밀지도

내용이 길어서 스크린샷으로 첨부했다. 문제 풀이는 다음과 같다. function solution(n, arr1, arr2) { let answer = []; let ten1 = [] let ten2 = [] let ten = [] let temp = '' for(let i = 0; i < n; i++){ ten1.push(arr1[i].toString(2)) ten2.push(arr2[i].toString(2)) ten1[i]='0'.repeat(n-ten1[i].length)+ten1[i] ten2[i]='0'.repeat(n-ten2[i].length)+ten2[i] } for(let i = 0; i < n; i++){ for(let j = 0; j < n; j++){ if(ten1[i][j]==='..

728x90