[2024 KAKAO INTERN] 주사위 고르기
·
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/258709 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 유형DP + 누적합DFS + 이분 탐색 문제 난이도Lev3 문제 분석A와 B가 주사위를 N / 2 개씩 나눠갖고, 각 주사위를 모두 돌려, 나온 숫자의 합을 서로 비교해서 A가 승리할 수 있도록 가장 승률이 좋은 주사위 번호들을 출력하는 문제이다.문제를 이해하는덴 어렵지 않았지만, 시간 초과를 해결하기 위해 고민하다 다른 사람들의 풀이를 참고한 문제이다.우선 문제에서 핵심은1. (N / 2)개의 주사위 고르기2. 고른 주사위와 고르지 않은 주사위..
[PCCP 기출 10번] 공원
·
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/340198 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 유형구현 문제 난이도Lev1 문제 분석해당 문제는 2차원 배열로 이루어진 공원에서 빈 공간에 정사각형 모양의 돗자리를 깐다고 했을 때 깔 수 있는 최대의 한 변의 길이를 구하는 문제이다.문제에서 park의 길이 만약 해당 문제를 조금 더 복잡하게 풀고 싶다면, 슬라이딩 윈도우를 사용하면 시간 복잡도와 메모리 효율을 높일 수 있을 것이다.그러나, 굳이 쉬운 문제를 어렵게 풀 이유는 없을 것 같다.전체 코드에 주석으로 설명을 추가하였다. 전체 코드i..
[PCCP 기출 9번] 지폐 접기
·
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/340199 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 유형구현 문제 난이도Lev1 문제 분석문제에서 주어진 로직대로 구현하면 된다.1. 지폐를 접은 횟수를 저장할 정수 변수 answer를 만들고 0을 저장합니다. 2. 반복문을 이용해 bill의 작은 값이 wallet의 작은 값 보다 크거나 bill의 큰 값이 wallet의 큰 값 보다 큰 동안 아래 과정을 반복합니다. 2-1. bill[0]이 bill[1]보다 크다면 bill[0]을 2로 나누고 나머지는 버립니다.2-2. 그렇지 않다면 bill[1..
[백준 1242번] 소풍
·
알고리즘
https://www.acmicpc.net/problem/1242 문제 유형수학 문제 난이도Gold 1 문제 분석총 N명 학생에 대하여 순서대로 번호를 부르고, K번을 부른 사람을 퇴장시킨다. 퇴장한 사람 다음 사람이 다시 1번부터 차례대로 숫자를 불러 K번 부르는 사람을 퇴장하도록 반복하고, M번에 해당하는 사람이 퇴장할 때 몇 번째로 퇴장하는지를 구하는 문제이다.문제에서 N 시간 복잡도는 O(N*K)로 N번 순회하면서 그때의 K번째 사람을 찾아서 제외한다면 시간 초과가 발생한다.따라서 시간 복잡도를 줄이는 문제였다. 숫자는 1번부터 시작하지만 인덱스를 0번부터 시작한다고 가정했을 때, 처음 M번에 해당하는 사람은 (M-1) 번째에 위치하고, 처음 시작은 1번부터 시작하므로 0번 인덱스부터 시작한다..
[2024 KAKAO INTERN] 도넛과 막대 그래프
·
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 유형그래프 문제 난이도Lev2 문제 분석간선들의 정보가 주어진다. 간선들은 단방향 그래프이고, 정점과 간선을 통해서 해당 그래프가 어떤 모양의 그래프인지를 카운팅하고, 새로 생성된 정점의 위치를 찾는 문제이다.처음에 문제를 접근할 때에는 DFS를 통해 그래프 탐색을 하려고 했지만, 이후 백트래킹을 하는 과정에서 중복 연산이 되고, 작성해야하는 엣지 케이스와 예외들을 처리하는게 많아져 다른 방법을 탐색했다.그래프의 특성을 보면 문제는 쉽게 풀린다...