알고리즘 17

[알고리즘] 프로그래머스 푸드 파이트 대회

프로그래머스 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Try / Solution function solution(food) { let answer = ""; for (let i = 1; i 0을 중심으로 양쪽에 같은 음식의 갯수가 놓여야 하니 2로 나누고 버림 만들어진 문자..

Programming 2023.10.23

[알고리즘] 프로그래머스 예상 대진표

프로그래머스 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Try / Solution function solution(n,a,b) { let round = 0; while (a !== b) { a = Math.ceil(a/2); b = Math.ceil(b/2); answer++; } return round; } a와 b는 2로 나누었을 때 올림한 만큼의 번호가 부여된다 -> 1과 2 중에 승리자는 다음 라운드에 1번이 되고 3,4는 2번이 된다 a와 b를 2로 나누었을 때 올림한 값이 같을 때의 라운드 값을 출력한다

Programming 2023.10.18

[알고리즘] 프로그래머스 구명보트

프로그래머스 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Try / Solution function solution(people, limit) { people.sort((a,b) => b-a); let answer = 0; let left = 0; let right = people.length -1; while(left limit){ left++; } else { left++; right--; } answer++; } if(left ==..

Programming 2023.10.17

[알고리즘] 프로그래머스 점프와 순간 이동

프로그래머스 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Try / Solution function solution(n) { let battery = 0; while(n > 0) { if(n % 2 === 0) { n = n / 2; } else { n--; battery++; } } return battery; } 2배 이동하는 순간이동은 배터리가 줄지 않으므로 2로 나눌 수 있다면 나눈다 2로 나눌 수 없다면 1만큼의 배터리를 소모하여 n에서 1을 빼준 후 다시 나눈다

Programming 2023.10.16

[알고리즘] 프로그래머스 카펫

프로그래머스 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Try / Solution function solution(brown, yellow) { let area= brown + yellow; for (let y = 3; y 세로는 가로보다 같거나 작으니 가로까지 반복 가로 = 넓이 / 세로 (x-2) * (y-2) === yellow 라면 그 x,y 값 출력

Programming 2023.10.13

[알고리즘] 프로그래머스 다음 큰 숫자

프로그래머스 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Try / Solution function countOne(n) { let count = 0 let binaryArr = n.toString(2).split(''); for(let i = 0; i < binaryArr.length; i++) { if (binaryArr[i] == 1) { count++; } } return count; } function solution(n) { let result = n; while(true) { result++; if(countOne(result) =..

Programming 2023.10.12

[알고리즘] 프로그래머스 크기가 작은 부분 문자열

[프로그래머스에서 문제 보기] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr My Solution / Try t.length에서 p.length의 길이를 뺀 것과 같을 때까지 반복 str.substr() 활용하여 문자열 추출 인덱스부터 p.length만큼 추출 function solution(t, p) { let result = 0; for (let i = 0; i

Programming 2023.07.02

[알고리즘] 프로그래머스 삼총사

프로그래머스 문제 링크 My Solution / Try 삼중 반복문을 돌며 더해서 0이 되는 값을 찾는다. 해당 인덱스 요소를 중복해서 더할 순 없으니(찾을 필요 X) 시작 인덱스는 1씩 증가하고, 마지막 인덱스는 1씩 감소해서 비교한다 function solution(number) { let result = 0 for(let i=0; i < number.length-2; i++) { for(let j=i+1; j < number.length-1; j++) { for(let k=j+1; k < number.length; k++) { if(number[i] + number[j] + number[k] === 0) { result++ } } } } return result } Advanced Solution ..

Programming 2023.06.30

[알고리즘] 프로그래머스 콜라 문제

프로그래머스 문제 링크 My Solution / Try while 반복문, n이 a보다 작은 순간 종료 n은 a만큼 줄고 b만큼 더해짐을 반복 받을 수 있는 콜라 sum은 b만큼 더해짐을 반복 function solution(a, b, n) { let sum = 0 while (n >= a) { n = n - a + b sum = sum + b } return sum; } Advanced Solution 재귀를 이용한 풀이 n이 a보다 작다면 0 출력 => 재귀 탈출문 콜라병의 합계는 n을 a로나눈 몫에 b를 곱함 solution 함수는 다시 a와 b 그리고 n을 a로 나눈 나머지와 합계를 더한 것으로 재귀(n이 a보다 작아질 때까지) function solution(a, b, n) { if (n <..

Programming 2023.06.29

[알고리즘] 양옆앞뒤 큰 수 찾기

조건 5x5 2차원 배열이 주어질 때 어떤 원소가 상하좌우에 있는 원소보다 클 때 해당 위치에 * 을 표시하는 프로그램을 작성하세요. 경계선에 있는 수는 상하좌우 중 존재하는 원소만을 비교합니다. 조건 1: 결과는 하나의 문자열이며, 2차원 배열의 각 배열의 요소들에 해당하는 문자는 길이 1의 공백으로 구분된다. 조건2: 결과에서 배열간의 구분은 줄바꿈(개행문자)으로 한다. 조건3: 비교할 원소가 존재하지 않는 경우 0으로 간주한다. My Solution / Try 비교할 이중배열의 상하좌우 해당 인덱스 요소가 undefined라면 크기를 비교할 수 없음 push와 unshift를 활용해서 이중배열 테두리를 전부 0으로 채움 상하좌우를 비교해서 제일 큰 수에 * 재할당 function solution(a..

Programming 2023.06.26