본문 바로가기

알고리즘/구현

(4)
백준(BOJ) 20546: 🐜 기적의 매매법 🐜 https://www.acmicpc.net/problem/20546 한번에 맞긴 했지만 문제 난이도를 생각할때 시간이 너무 오래 걸렸다. 뭔가 solution함수가 분기문이 많아 지저분한 느낌이 든다. 다른 코드는 어떤지 살펴보자. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main{ static int solution1(int asset, int[]price){ int myStock=0; for(var p:price){ if(asset/p>0) { int num= (asset / p); asset-=(num*p);..
백준(BOJ) 20056: 마법사 상어와 파이어볼 https://www.acmicpc.net/problem/20056 출처: https://tussle.tistory.com/985 https://developer-u.tistory.com/101 접근 방법 이 문제에 핵심 1. 1번행과 N번 행은 연결, 1번열과 N번 열은 연결되어있습니다. 2. 마법사 상어는 문제의 조건에 맞게 파이어볼을 발사합니다. 3. K번 이동 명령을 진행한 후, 남아있는 파이어볼 질량의 합을 결과로 출력합니다. 알고리즘 진행 순서. 1. 입력된 정보를 저장합니다. 2. K번 이동명령을 진행합니다. 3. 남아있는 파이어볼 질량의 합을 결과로 출력합니다. 파이어볼 이동명령 1번행과 N번 행은 연결, 1번열과 N번열은 연결? ※처음에 이 문장에 대해서 이해하지 못하였지만 예제입력을 시..
백준(BOJ) 21608 : 상어 초등학교 https://www.acmicpc.net/problem/21608 문제 자체는 어렵지 않은데 까다로운 설정들이 들어가있어서 다시 해볼때도 주의하면서 해보는게 좋다. 🚀풀이 사방탐색, HashMap, 구현력 앉을 좌석을 찾는 방법을 구현할 때 NxN 배열을 순차 탐색하며 주어진 조건 3가지를 고려하여 자리를 선택하여 차례대로 학생들을 배치하였다. 3가지 조건을 고려하기 용이하도록 Seat 클래스를 만든 뒤, Comparable 인터 페이스를 상속하여 비교하였다. 비교하기 용이하기 위해 Seat클래스에는 x y 좌표, 주변 좋아하는 학생 수, 주변 빈칸 수를 필드로 가지도록 하였다. Seat 클래스안에 정보들을 한 번에 가지고 있지 않았더라면 중첩 if 문들로 비교를 해야 해서 가독성이 많이 떨어질 것이므..
백준(BOJ) 16918번 봄버맨 처음에 문제를 이해하고 가장 걱정스러웠던게 매 초를 어떻게 표현해 주는냐 였다. ==>> 의외로 간단했다. 그냥 반복문을 한번돌면 그것을 1초라고 여기면 되는 것이었다. 실제로 연산에 걸리는 시간이 얼마건 그냥 이렇게 표현해 주면 되는 것이다. 문제에 오류가 있는 거 같다. '1초가 지난 후에 3초 전에 설치된 폭탄이 모두 폭발한다.' 를 '1초가 지난 후에 2초 전에 설치한 폭탄이 모두 폭발한다' 로 바꾸어야 할것같다. https://www.acmicpc.net/problem/16918 16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc..