본문 바로가기
반응형
SMALL

algorithm/문제풀이49

크레인 인형뽑기 게임 https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 스택 큐 문제 같고 설명이 아주 자세해서 직관적으로 한번에 풀어냄! 원본배열을 수정해야하므로 splice 를 사용했는데2차원 배열에서 splice 써본 건 처음이라위치 넣는 부분에board.splice(selcect, 1, 0); // 2차원 배열에서는 이렇게하면 그냥 배열 자체가 0으로 바뀌어버림board[j].splice([moves[i] - 1], 1, 0); 이렇게 원하는 2차원 배열의 위치를.. 2024. 5. 14.
연습문제 > 햄버거 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/133502?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1 2 3 1 이 연속되면 그 배열에서 재료 4개 날리고다시 검사하는 식의 while 무한루프를 만들면 되는데1 2 3 1 이 연속될 때 i++; 식으로 구현했다가 범위 오버 문제도 있고 참조 문제도 있어서ingredient.length - 4 (초과하는 오버 범위를 빼기) 식으로 구현해주는게 좋고 while의 조건을 그 전과 비교해 감소했는지 여부를 체크하는 플.. 2024. 5. 13.
연습문제 > 대충 만든 자판 https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr구조부터 짬 while 문이 유리하다고 판단 됨원하는 값의 길이가 targets의 길이에 도달할때 까지 반복하고targets의 각 인덱스 총합을 push 할 때까지 그리고 잠시 아직 완성안된 while 무한루프를 해제한 뒤 targets를 하나씩 불러오게 하기 A B C D 를 가장 빠르게 누를 수 있는 방법을 찾으려면keymap 배열 [ 'ABACD', 'BCEFD' ] 에서 가장 근접한 숫자의 i.. 2024. 5. 11.
연습문제 > 숫자 짝꿍 https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문자열을 하나씩 매칭해서 공통되는 걸 찾고 중복되지 않도록 Y의 값에서는 비교 된 게 있으면 그 값을 splice로 빼주는 식으로 처리  효율성체크에서 통과 못함 2중 포문 줄이기  응 그래도 통과 못해 지피티선생....  털썩.. 2024. 5. 8.
연습문제 > 문자열 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제부터 동공지진이 왔음 내가 문해력이 딸리나 뭔소리인지 이해하기가 어려움그냥 해보면서 이해하는걸로이런식의 재귀로 풀어야할 줄 알았는데시간초과  발생 text = text.slice(i + 1) 도 원래는 read라는 변수에 담은 걸로 split 하려고 했는데nana 를 na 로 분리할 때 그냥 na로 두번 나눠서 공중분해되는 문제 때문에 지피티로 방법 찾음 ㅜㅜ레벨 2 보다 왜 훨씬 어려운 문제 .. 2024. 5. 7.
로또의 최고 순위와 최저 순위 https://school.programmers.co.kr/learn/courses/30/lessons/77484?language=javascript#fn1 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정렬을 안해도 풀리는 문제로또번호 불확실한 0을 잘 카운트해내면 풀 수 있음  0이면 바로 다음 구문으로 넘기고, 당첨번호와 매칭되는지 체크 함당첨 갯수와 0의 갯수가 구해질껀데  당첨 갯수에 따라 최저 당첨 순위를 low에 담음 그리고 0의 갯수와 당첨번호를 더한게 최고 순위라 high 에 담고 return 해주면 끝 코드가 길지만 그래도 직관적으로 바로 .. 2024. 5. 7.
탐욕법(Greedy) > 체육복 https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 체육복 여분 가져온 사람의 배열을 하나씩 제거하면서 없어질 때까지 while을 돌리고빌려주기가 가능할 때 lost에서 하나씩 제거해가면서마지막에 체육복 갯수에서 lost의 배열 갯수를 빼면 나올 줄 알았다function solution(n, lost, reserve) {    while (reserve.length > 0) {        const reserveNum = reserve.pop(); .. 2024. 4. 30.
Summer/Winter Coding(~2018) > 소수 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 서로다른 3개의 수를 더했을 때의 값들을 전부 뽑는 순열 배열을 하나 만든다. 2. 그 배열 중 소수인 것의 갯수를 세서 return 한다. 푸는 방법은 알겠는데 저걸 하나하나 모두 짜라고하면 못함 출제빈도가 은근 높아서 다양한 순열 뽑는 알고리즘은 어느정도 함수로 일단 갖고 있어야할 듯 2024. 4. 24.
연습문제 > 덧칠하기 https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 이런식으로 접근 했다 // n : 6, m : 1, section : [1, 3, 5] // answer : 3 // 반환 결과 : 5 롤러의 길이 m 이 1일 때는 다른 결과가 나오므로 if (m === 1) { return section.length; } 를 추가했지만 60% 밖에 통과를 못했고 // 입력값 〉 5, 2, [1, 2, 5] // 기댓값 〉 2 // 반환 결과 : 5 라.. 2024. 4. 19.
해시 > 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr includes() includes() includes() 메서드는 문자열 또는 배열에서 특정 값이 포함되어 있는지를 확인하는 데 사용됩니다. 이 메서드는 부울린(boolean) 값을 반환합니다. 문자열에서 사용 const str = 'Hello, World!'; console.log(str. yongfront.tistory.com 또는 startsWith() startsWith() startsW.. 2024. 4. 10.
해시 > 완주하지 못한 선수 https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 배열에서 배열 빼기를 하는 문제다. 배열에서 배열 빼기 배열에서 배열을 빼는 연산은 자바스크립트에서 직접적으로 지원되지 않지만, 다음과 같은 방법으로 구현할 수 있습니다. filter() 메서드와 includes() 메서드 사용 const arr1 = [1, 2, 3, 4, 5]; const arr2 = yongfront.tistory.com 근데 이렇게 하면 중복된 요소까지 다 빠져버려서 진정한.. 2024. 4. 10.
정렬 > H-Index https://school.programmers.co.kr/learn/courses/30/lessons/42747#fn1 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 문제를 한참 읽어 봤다 정렬을 하면 그 해당값들의 index를 활용하기 편하고 인용된 횟수의 최소 값을 구하면 어찌저찌 될 것 같은데 순회하는 것에 대해 아직 정확히 숙련 돼 있지 않은 듯 함 3 0 6 1 5 라고 하면 일단 b - a 내림차순 정렬을 하면 6 5 3 1 0 for (let i = 0; i < sortArray.length; i++) 를 통해 각 요소를 순회 함 i.. 2024. 4. 3.
정렬 > 가장 큰 수 https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 골치아픈 문제임 처음에 모든 경우의 수를 만들어서 탐욕알고리즘으로 풀까라고 생각도 해봤지만 탐욕알고리즘조차 아직 제대로 다뤄보지 않아서 그리고 카테고리 자체가 정렬이니 정렬을 이용해서 풀어보라고 해서 sort 를 써서 단순히 내림차순을 해보았더니 당연히 자리수 때문에 이상하게 정렬 된다 방법을 찾던 중 문자열로 정렬하면 어떨까 하는 생각이 들어서 이런 식으로 문자열로 변경한 다음에 첫번째 자리수를.. 2024. 4. 3.
연습문제 > 소수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/12921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소수 만들기라는 문제를 풀려면 소수를 찾는 방법부터 알아야 한다. 그래서 먼저 소수 찾기부터 풀어보고 다음에 소수 만들기를 풀 예정이다. 소수는 1과 자기 자신 외에는 어떤 수로도 나누어떨어지지 않는 1보다 큰 자연수이다. 가장 간단한 소수 판별 방법은 2부터 해당 숫자의 제곱근까지 모든 숫자로 나누어보는 것이. 자바스크립트에서는 Math.sqrt 를 활용하여 쉽게 소수를 찾을 수 있는데 func.. 2024. 3. 31.
연습문제 > 기사단원의 무기 https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일단 약수의 개수를 구하는 함수를 활용해서 풀어보려고 한다 function count(n) { let p = 0; for (let i = 1; i 2024. 3. 29.
완전탐색 > 모의고사 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 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, ... let p1 = [1, 2, 3, 4, 5]; le.. 2024. 3. 29.
깊이/너비 우선 탐색(DFS/BFS) > 게임 맵 최단거리 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일단 console.log 로 지형을 파악해본다 자료구조가 배열이기 때문에 오른쪽으로 가는걸 먼저 체크하는게 일단 편해보임 현재위치를 저장하고 if (오른쪽이 0일 경우) 바로 다음 배열의 동일 index를 체크 (아래로 감) else 오른쪽이 1일 경우 오른쪽으로 한칸 이동한 현재위치를 저장 후 다시 위의 조건문을 호출해야하니까 저 조건문은 while 문이 됨 while (현재위치가 5,5일때까지.. 2024. 3. 8.
스택/큐 > 주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 배열이 주어지고 그 각 시점의 가격이 떨어지지 않은 것만 카운트 하면 된다 1 = 4번 상승 2 = 3번 상승하거나 보합 3 = 1번 보합 2 = 1번 상승 3 = 0 스택/큐 문제라는데 아직 익숙하지 않아서인가 그냥 푸는게 더 쉽게 구현이 가능해보이는데 이런식의 접근을 했을 때 예제는 풀리는데 다른 예시들이 통과가 안됨 가격이 떨어졌을 때 2번째 중첩 포문에서의 반복을 중단하고 다음 숫자로 넘어.. 2024. 2. 28.
스택/큐 > 프로세스 https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 를 실제로 구현해보고자 했다 funct.. 2024. 2. 22.
728x90
반응형
LIST