알고리즘/프로그래머스(51)
-
Level2️⃣ - 우박수열 정적분
https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 접근문제가 꽤 길다. 핵심 요구 사항에 대해 잘 파악해야한다.우선 우박수열에 대한 개념을 소개하고 있다. 홀수일 때와 짝수일 때의 연산을 달리 적용해서 k가 1이 될때까지의 수열을 저장하면 된다. 예를 들어 k가 5라면 우박수열은 5, 16, 8, 4, 2, 1이 된다. 그리고 정적분의 개념이 나오는데 문제에서 x에 대한 어떤 범위 [a,b]가 주어진다면 이 범위에 대한 정적분 결과는 꺾은선 그..
2024.05.23 -
Level 2️⃣ - 광물 캐기
https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 접근순열을 활용해서 문제를 해결하려고 하니 시간 초과가 나왔다.picks 배열을 이용해서 사용할 곡괭이 경우의 수를 순열로 구한다. 이때 이미 구한 경우의 수라면 생략한다. 곡괭이의 경우의 수마다 광물을 캔다.최소 피로도를 구한다. function solution(picks, minerals) { const table = [[1,1,1],[5,1,1],[25,5,1]]; let for..
2024.05.21 -
Level 2️⃣ - 디펜스 게임
https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 접근차례대로 라운드가 진행된다는 점을 주의해야한다.전체 라운드 중에서 무적권을 사용할 수 있는 k개를 뽑는다. 이 말은 enemy 중에서 k개를 뽑는 것과 같다. 그리고 해당 라운드에서는 무적권을 사용한다는 표시를 해둔다.무적권을 사용하지 않는 라운드도 표시를 한다.무적권을 사용하지 않는 라운드에서만 병사를 소모한다.최대 진행할 수 있는 라운드 수를 구한다. 위의 절차에 따라 다음과 같은 코드를..
2024.05.21 -
Level 2️⃣ - 테이블 해시 함수
https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🚀문제 접근비트 연산자 를 활용하는 문제이다.문제는 요구사항대로 구현만 하면 된다. 비트 연산자에 대해 잘 알지 못했는데 공부할 수 있는 기회가 되었다. XOR 연산은 두 피연산자를 32비트의 2진법으로 변경한 후, 각 자리의 값(0또는 1)이 같으면 그 자리를 0, 다르면 그 자리를 1로 바꾼 후에 10진법의 정수로 리턴하는 연산자이다.const a = 5; // 000000000000000000..
2024.05.20 -
Level 2️⃣ - 캐시 (2018 KAKAO BLIND RECRUITMENT)
https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 어려운 문제는 아니지만 컴퓨터 구조를 활용한 알고리즘 문제라는 재밌는 유형이기에 정리한다. 캐쉬 교체 알고리즘을 활용해서 코드를 구현해야한다.LRU (Least Recently Used) 에 대해 자세한 설명이 나와있지 않기 때문에 해당 개념을 모른다면 문제를 풀 수 없다.LRU는 가장 오랫동안 참조하지 않은 데이터를 교체하는 알고리즘이다. 캐시 큐에 데이터가 있다면 cache hit이다.이 경우에는..
2024.05.16 -
Level 2️⃣ - 리코쳇 로봇
https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🚀문제 접근bfs 탐색을 생각할 수 있는데 장애물을 만나거나 범위에 벗어날 때까지는 쭉 미끄러져야한다.이 부분을 구현하는 것이 어려웠다.그리고 항상 visited 배열을 이용해서 최단거리를 구했는데 count라는 변수를 이용해서 목적지점까지의 최단거리를 구할 수 있다.조금 변형되어도 스스로 느끼기에 난이도가 확 높아진 느낌이다. 더 많은 문제를 풀어봐야겠다.function solution(board..
2024.04.25