Koder / 박성훈
article thumbnail
백준 BOJ 13413 - 오셀로 재배치
알고리즘/백준 BOJ 2023. 7. 22. 22:42

https://www.acmicpc.net/problem/13413 13413번: 오셀로 재배치 로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검 www.acmicpc.net 두가지 작업 중에 첫번째 작업을 하는것이 당연히 훨씬 이득이기 때문에, 첫번째 작업을 최대한 많이 진행할 수 있게 만들어주면 되는 그리디 문제에 해당한다. 일단 문자열 A와 B의 i번째 문자 $A_i$, $B_i$ 에 대해서, 각각 W,B 에 해당하는경우 N와 B,W에 해당하는 경우 M를 세준다. W,B와 B,W 쌍이 만들어지는 경우, 첫번째 작업을 진행할 수 있으므로 두번의 두번째 작업을 사용할 ..

article thumbnail
백준 BOJ 2564 - 경비원
알고리즘/백준 BOJ 2023. 7. 21. 14:55

https://www.acmicpc.net/problem/2564 2564번: 경비원 첫째 줄에 블록의 가로의 길이와 세로의 길이가 차례로 주어진다. 둘째 줄에 상점의 개수가 주어진다. 블록의 가로의 길이와 세로의 길이, 상점의 개수는 모두 100이하의 자연수이다. 이어 한 줄 www.acmicpc.net 직사각형의 패러다임에서 생각하면 어려워지는 문제. 직사각형을 쭈우욱 펼쳐서 하나의 원형 지도를 상상한다. 거리 계산의 편의상 서북쪽 꼭짓점, 그러니까 왼쪽 위에 해당하는 부분을 0으로 시작해서 시계방향으로 원을 한바퀴 돌면 서북에 있는 꼭짓점과 각 점들간의 거리를 구할 수 있다. 이 거리를 $dis_i$ 라고 하고, 동근이의 점에 대해서도 거리를 구해서 $dis_d$ 라고 하자. 문제의 정의에 따라서,..

article thumbnail
백준 2852 - NBA 농구
알고리즘/백준 BOJ 2023. 7. 21. 14:27

https://www.acmicpc.net/problem/2852 2852번: NBA 농구 첫째 줄에 골이 들어간 횟수 N(1

article thumbnail
백준 BOJ 20546 - 🐜 기적의 매매법 🐜
알고리즘/백준 BOJ 2023. 7. 21. 13:52

https://www.acmicpc.net/problem/20546 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net 주식을 구매하는 두가지 방법론을 구현하는 문제. 준현이는 살수 있는 모든 경우에 대해서 사게 하고, 성민이는 3일 연속 상승인 경우 매도, 3일 연속 하락인 경우 매수하게끔 소스코드를 작성해주면 된다. 3일 연속 상승은 $p_{k-3} sm) cout

article thumbnail
백준 BOJ 1446 - 지름길
알고리즘/백준 BOJ 2023. 7. 20. 14:44

https://www.acmicpc.net/problem/1446 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 10,000보다 작거나 같은 자연수이다. 다음 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이 www.acmicpc.net 깔끔하게 풀어서 맘에드는문제 그래프 or 다익스트라로 푼 사람들이 몇몇 보이던데, 개인적으로는 DP로 푸는게 더 깔끔하지 않나 싶다. $dp_i$ - 현재 위치가 i 일때 운전한 거리의 최솟값 다음 dp테이블의 정의에 따라 정답은 $dp_D$ 가 된다. $dp_k$ 는 처음에 임의의 MAX값( 난 998244353으로 정했다 ) 로 초기화해놓은 뒤, 두가지 경우 지름길이 없는 경우 $d..

article thumbnail
백준 BOJ 2012 - 등수 매기기
알고리즘/백준 BOJ 2023. 7. 20. 14:27

https://www.acmicpc.net/problem/2012 2012번: 등수 매기기 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다. www.acmicpc.net 실제 등수가 1,2,3,4,5.... 차가 1로 일정한 증가하는 수열의 형태를 띄고 있고, 문제 입력으로 들어온 수열을 해당 수열과 최대한 비슷한 형태로 구성하는 문제이다. 최대한 비슷한 형태 >> 정렬된 배열을 지칭하는 말로, 입력으로 들어온 배열을 정렬해서 인덱스값+1 과 비교해서 불만도의 총 합을 구하면 된다. 입력으로 들어온 배열을 구성할 때 $i N_j$ 인 상황에서 불만도의 합인 $Total$..

article thumbnail
백준 BOJ 1312 - 소수
알고리즘/백준 BOJ 2023. 7. 20. 14:06

https://www.acmicpc.net/problem/1312 1312번: 소수 피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다. www.acmicpc.net 초등학교때의 사칙연산공부를 하던 갬성을 살려서 풀어보도록 하자. C언어의 double 형 같은 경우 정확도가 그리 높은편이 아니기 때문에 백만번 나누면 부정확해진다. python의 Decimal 형같은경우는 어찌저찌 될지도...? 근데 그것보단 아래풀이가 더 깔끔하다. 몫이 정답이 되고 나머지를 또 나눌수 있게 하기 위하여 10을 곱해주면 된다. N이 실버5치고 상당히 커보이기때문에 겁먹을 수..

article thumbnail
백준 BOJ 20300 - 서강근육맨
알고리즘/백준 BOJ 2023. 7. 19. 23:25

https://www.acmicpc.net/problem/20300 20300번: 서강근육맨 PT 첫째 날에 $1$과 $4$를 선택하고, 둘째 날에 $2$와 $3$을 선택하고, 마지막 날에 $5$를 선택하면 $M$은 $5$가 되며, 이때가 $M$이 최소일 때이다. www.acmicpc.net 배열에서 두 수 $t_a$ 와 $t_b$ 를 골라 더해서 $K$를 만들고, 이 $K$들의 최댓값이 최소가 되도록 하는 문제. 더하는 두 수를 선택하는데 있어서, 정렬된 배열의 양 끝, $MAX_t$ 와 $MIN_t$ 를 더하는게 $K$를 작게 만들수 있는 방법이다. 가장 큰 수와 가장 작은수를 매칭시켜줘야 가장 큰수에 최소한의 수를 더할 수 있기 때문이다. 이 방법으로 배열의 크기가 짝수라면 깔끔하게 해결되지만, 배..

article thumbnail
백준 BOJ 2548 - 대표 자연수
알고리즘/백준 BOJ 2023. 7. 19. 23:08

https://www.acmicpc.net/problem/2548 2548번: 대표 자연수 첫째 줄에는 자연수의 개수 N이 입력된다. N은 1 이상 20,000 이하이다. 둘째 줄에는 N개의 자연수가 빈칸을 사이에 두고 입력되며, 이 수들은 모두 1 이상 10,000 이하이다. www.acmicpc.net 두번속은문제.... 1. 지문읽으면서 엥 이거 평균아닌가 라고 생각 >> 지문에서반박당함 2. 이분탐색 생각해봄 >> 무한반복 걸려서 고민하던중 다른 아이디어 발견 이 문제에서 요구하고 있는 값은 입력된 배열의 중앙값이다. 입력된 배열에서 대표 자연수를 $K$ 라고 할때, 대표 자연수보다 큰 수가 $A$개 있고 대표 자연수보다 작은 수가 $B$ 개 있을 것이다. (이때, $A+B == N$ 이다) 대표..

article thumbnail
백준 BOJ 2477 - 참외밭
알고리즘/백준 BOJ 2023. 7. 19. 22:43

https://www.acmicpc.net/problem/2477 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net 참으로귀찮게생겨먹어서 미루다미루다 푼 문제 한번에 안풀려서 질문창 보다가 느낀건데 이문제 다들 너무 어렵게 생각하고 있는 것 같다. 이 문제를 유심히 보면 패인 부분에 있는 60이라는 길이와 인접한 두 변이 평행선을 그리면서, 반시계방향으로 탐색하게 된다면 반드시 남쪽으로 내려가는 변이라는 것을 알 수 있다. 똑같이 패인 부분에 있는 길이가 20인 변과 인접한 두변의 탐색방향이 동쪽으로 동일하다..

반응형