목록boj (7)
코딩 해파리
안녕하세요! 오늘은 백준 1011번 "Fly me to the Alpha Centauri" 문제에 대해 이야기해보려고 합니다. 현재 이 문제는 solved 기준 골드 5에 속하는 문제입니다. 문제 분석: 이 문제는 우주선이 출발점 x에서 도착점 y까지 이동하는 최소 횟수를 구하는 것입니다. 우주선의 이동 규칙이 특이한데, 처음에는 1광년만 이동할 수 있고, 그 다음부터는 이전 이동 거리에 -1, 0, 또는 +1 광년을 더한 거리만큼 이동할 수 있습니다. 또한, 마지막 도착 직전의 이동 거리는 반드시 1광년이어야 합니다. 접근 방법: 이 문제를 풀기 위해 규칙성을 찾고, 답을 도출할 때에는 수학적인 접근을 사용했습니다. 1 = 12 = 1 + 13 = 1 + 1 + 14 = 1 + 2 + 15 = 1 +..
안녕하세요! 오늘은 백준 2812번 "크게 만들기" 문제를 풀어보고 그 과정을 공유하려고 합니다. 이 문제는 그리디 알고리즘을 활용하는 아주~ 좋은 예시입니다! 현재 이 문제는 solved에서 제공하는 난이도 기준으로 골드 3에 위치하고 있습니다!어떻게 보면 함정 자체도 크게 없고 구현도 어렵지 않지만 아이디어를 떠올리기가 쪼금.. 어렵습니다!문제 분석:이 문제는 N자리 숫자에서 K개의 숫자를 지워 가장 큰 수를 만드는 것이 목표입니다. 처음에는 복잡해 보일 수 있지만, 그리디 알고리즘을 적용하면 효율적으로 해결할 수 있습니다.접근 방법:1. 숫자를 순서대로 확인하면서 스택(여기서는 deque를 사용)에 넣습니다.2. 현재 숫자가 스택의 top보다 크다면, 스택의 top을 제거합니다 (K를 1 감소).3..
안녕하세요! 오늘은 백준 2457번 "공주님의 정원" 문제를 해결한 과정과 그 과정에서의 사고 흐름을 공유하려고 합니다. 이 문제는 그리디 알고리즘을 활용하여 해결할 수 있는 흥미로운 문제입니다.문제 분석:이 문제는 공듀님의 정원에 피어 있는 꽃들의 개화 기간이 주어졌을 때, 3월 1일부터 11월 30일까지 매일 꽃이 한 가지 이상 피어 있도록 하기 위해 선택해야 하는 최소한의 꽃의 개수를 구하는 것입니다.접근 방법:1. 꽃의 개화 기간을 시작일과 종료일로 정렬합니다.2. 현재 날짜부터 시작하여 가장 늦게 지는 꽃을 선택합니다.3. 선택한 꽃의 종료일을 새로운 시작일로 설정하고 과정을 반복합니다.4. 모든 기간을 커버할 때까지 이 과정을 반복합니다. 코드 구현 :#include #include #incl..

오늘의 문제는 14940 쉬운 최단거리 문제입니다! 현재 solved 기준 실버 1에 위치한 문제네요! https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 이 문제는 보자마자 느낌이 오시겠지만, 너비 우선 탐색$($BFS$)$ 문제입니다! 나쁘게 말하면 전형적이고 진부하지만, 좋게 말하면 BFS의 굉장히 정석적이고 처음 너비 우선 탐색에 대해 배우고 익히기 좋은 문제라고 생각합니다! 일단 이 문제는 2차..

오늘의 포스팅은 1450 냅색문제 입니다! solved에서 제공하는 난이도 기준 골드 1에 위치하고 있습니다!https://www.acmicpc.net/problem/1450 1450번: 냅색문제첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수, C는 109보다 작거나 같은 음이 아닌 정수이다. 둘째 줄에 물건의 무게가 주어진다. 무게도 109보다 작거나 같은 자연수이다.www.acmicpc.net 이번 문제도 저번의 포스팅처럼 중간에서 만나기 라는 개념을 또 사용합니다!이번 문제는 저번에 풀었던 것보다 조금은 더 이해하기 힘들게 응용하기 때문에, 저번 포스팅을 보지 않으셨거나 중간에서 만나기라는 개념을 처음 접해 보셨다면 아래의 링크로 한 번 확인하고 오시는 것을 추천드립니다!!htt..

오늘 풀어볼 문제는 백준 7453번 합이 0인 네 정수 입니다! https://www.acmicpc.net/problem/7453 7453번: 합이 0인 네 정수 첫째 줄에 배열의 크기 n (1 ≤ n ≤ 4000)이 주어진다. 다음 n개 줄에는 A, B, C, D에 포함되는 정수가 공백으로 구분되어져서 주어진다. 배열에 들어있는 정수의 절댓값은 최대 228이다. www.acmicpc.net 이 문제를 효율적으로 풀기 위해 기본적으로 깔고 가야 하는 알고리즘? 최적화 방식? 은 Meet In The Middle = 중간에서 만나기 입니다! 번역하니까 열라 하찮은 느낌이네요...ㅋㅋㅋㅋ 굉장히 매력적인 방법이니 한 번 집중해서 뜯어보시길 권유드립니다! 일단 이름에 걸맞게 구현 방식이 굉장히 직관적입니다....

내 첫 포스팅은 23082번 균형 삼진법 문제이다. https://www.acmicpc.net/problem/23082 23082번: 균형 삼진법 균형 삼진법은 밑이 \(3\)이고, 자릿수가 \(0\), \(1\), \(-1\)로 이루어진 기수법이다. 이를 이용해 별도의 부호를 사용하지 않고서도 모든 정수를 유일한 방법으로 나타낼 수 있다. 십진수를 입력 받 www.acmicpc.net 이 문제를 선택한 이유는... 뭐... 구글에 검색해서 잘 나오지도 않고... 인하대 학우들이나 오픈 콘테스트 나가는 사람들이 언젠가 IUPC를 준비할 때 도움이 되지 않을까 하는 마음에 작성해 본다! 균형 삼진법 문제의 첫 접근 자체가 어지럽다. 이게 뭔 말인가... 싶기도 하고, 구현 자체를 쌩으로 하나하나 해야 하는..