알고리즘 문제풀이/BOJ
-
BOJ 11399 ATM 문제 자바(java) 풀이 랭크 : 실버3 백준 온라인 저지(BOJ) 11399 ATM 문제 자바 풀이 백준 11399 ATM 문제정리 ATM 1대 앞에 n명의 사람이 줄을 서있다(번호: 1~N) i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분 m번째 사람이 돈을 뽑을때 까지 기다려야 하는 시간 = P0 + P1 + ... + Pm 사람들이 돈을 뽑는데 걸리는 시간의 합의 최솟값을 구해라!! 문제풀이 순열 이용하기 But, 시간초과 최대 나올 수 있는 다음과 같다. 즉 int형으로 사용해도 무방하다. 1000 1000 1000 ... 1000 = 1000x1000 + 1000x999 + ... 1000x1 = 1000(1000 + 999 + ...1) = 약 5억 (int형) ..
[백준 온라인 저지(BOJ)] 11399번 ATM 문제 자바 풀이 (sorting)BOJ 11399 ATM 문제 자바(java) 풀이 랭크 : 실버3 백준 온라인 저지(BOJ) 11399 ATM 문제 자바 풀이 백준 11399 ATM 문제정리 ATM 1대 앞에 n명의 사람이 줄을 서있다(번호: 1~N) i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분 m번째 사람이 돈을 뽑을때 까지 기다려야 하는 시간 = P0 + P1 + ... + Pm 사람들이 돈을 뽑는데 걸리는 시간의 합의 최솟값을 구해라!! 문제풀이 순열 이용하기 But, 시간초과 최대 나올 수 있는 다음과 같다. 즉 int형으로 사용해도 무방하다. 1000 1000 1000 ... 1000 = 1000x1000 + 1000x999 + ... 1000x1 = 1000(1000 + 999 + ...1) = 약 5억 (int형) ..
2020.02.17 -
BOJ 9663번 N-Queen 문제 자바(java) 풀이 이 문제는 백트래킹 공부를 한다면 무조건 풀고가야 할 문제입니다. 이 문제를 풀어서 설명할 줄 안다면 백트래킹의 기본은 이해했다고 볼 수 있을것 같아요 백트래킹의 개념을 알고 구현할 줄 안다면 그리 어렵지 않은 문제이지만(난이도도 실버1) 모른다면 처음에 어떻게 접근해야할지 정말 막막한...ㅠㅠ 8중 for문을 돌려도 되려나??? 가능할지도 모르겠어요 ㅋㅋㅋㅋㅋ 랭크 : 실버 1 백준 온라인 저지(BOJ) 9663번 N-Queen 문제 자바 풀이 백준 9663번 N-Queen 문제이해 이 문제는 백트래킹을 이용해서 풀 수 있는 문제로 완전탐색을 통해 모두 찾아봐야 합니다 체스를 둘 줄 모르는 분들을 위해서 간략히 룰에 대해서 설명 드리겠습니다. ..
[백준 온라인 저지(BOJ)] 백트래킹(backtracking)의 대표 문제 :: 9663번 N-Queen 자바 풀이 및 백트래킹 설명BOJ 9663번 N-Queen 문제 자바(java) 풀이 이 문제는 백트래킹 공부를 한다면 무조건 풀고가야 할 문제입니다. 이 문제를 풀어서 설명할 줄 안다면 백트래킹의 기본은 이해했다고 볼 수 있을것 같아요 백트래킹의 개념을 알고 구현할 줄 안다면 그리 어렵지 않은 문제이지만(난이도도 실버1) 모른다면 처음에 어떻게 접근해야할지 정말 막막한...ㅠㅠ 8중 for문을 돌려도 되려나??? 가능할지도 모르겠어요 ㅋㅋㅋㅋㅋ 랭크 : 실버 1 백준 온라인 저지(BOJ) 9663번 N-Queen 문제 자바 풀이 백준 9663번 N-Queen 문제이해 이 문제는 백트래킹을 이용해서 풀 수 있는 문제로 완전탐색을 통해 모두 찾아봐야 합니다 체스를 둘 줄 모르는 분들을 위해서 간략히 룰에 대해서 설명 드리겠습니다. ..
2020.02.16 -
이 문제는 모든 경우를 탐색하면 간단히 풀 수 있는 문제입니다. BOJ 2615번 오목 문제 자바(java) 풀이 랭크 : 실버3(solved.ac) 백준 온라인 저지(BOJ) 2615번 오목 문제 자바 풀이 백준 2615 오목 문제 간단 정리 알이 연속으로 5개 이상 놓여있으면 이기게 된다(가로, 세로, 대각선 모두) 바둑판 상태가 주어졌을때 어떤 알이 이겼는지, 승부가 안됬는지 판단하여라. 어떻게 보면 쉬워보이지만 아래 사항을 간과하여 틀리는 분들이 많습니다. 단 여섯알 이상 놓인 경우는 이긴 것이 아닌다 바둑알 상태 0: 놓이지 않음 1: 검은 바둑알 2: 흰 바둑알 문제풀이 이 문제는 19 * 19의 map을 탐색하는 문제이다. 그래서 그냥 모든 경우를 따져 주면된다. bfs나 dfs 이런 걸 적..
[백준 알고리즘(BOJ)] 2615번 오목 설명 및 자바 풀이이 문제는 모든 경우를 탐색하면 간단히 풀 수 있는 문제입니다. BOJ 2615번 오목 문제 자바(java) 풀이 랭크 : 실버3(solved.ac) 백준 온라인 저지(BOJ) 2615번 오목 문제 자바 풀이 백준 2615 오목 문제 간단 정리 알이 연속으로 5개 이상 놓여있으면 이기게 된다(가로, 세로, 대각선 모두) 바둑판 상태가 주어졌을때 어떤 알이 이겼는지, 승부가 안됬는지 판단하여라. 어떻게 보면 쉬워보이지만 아래 사항을 간과하여 틀리는 분들이 많습니다. 단 여섯알 이상 놓인 경우는 이긴 것이 아닌다 바둑알 상태 0: 놓이지 않음 1: 검은 바둑알 2: 흰 바둑알 문제풀이 이 문제는 19 * 19의 map을 탐색하는 문제이다. 그래서 그냥 모든 경우를 따져 주면된다. bfs나 dfs 이런 걸 적..
2020.02.15 -
BOJ 3190번 뱀(snake) 문제 자바(java) 풀이 랭크 : 실버 1 백준 온라인 저지(BOJ) 3190번 뱀(snake) 문제 자바 풀이 백준3190번 뱀 코드 저는 푸는데 1시간 좀 넘게 걸렸어요 아래의 깃허브를 참고해주세요!! 백준3190번 뱀 문제이해 시작시 뱀은 맨위 맨 좌측에 위치. 처음에 오른쪽으로 향하며 초기 뱀의 길이는 1이다. 몸길이를 늘려 머리를 먼저 다음 칸에 가져다 댄다. if 사과 exists: 사과 없어지고 꼬리는 움직이지 않음 ( 몸 길이 늘어남 ) if !사과 exsists: 몸 길이를 줄여 꼬리가 위치한 칸을 비워줌 ( 몸 길이 그대로 ) 게임이 끝나는 시간 계산하기 ( 벽 또는 자기자신의 몸과 부딪히면 게임 끝) 벽은 상하좌우 끝에 있다. 문제 풀이 뱀 초기 위..
[백준 알고리즘(BOJ)] 3190번 뱀 자바(java) 풀이BOJ 3190번 뱀(snake) 문제 자바(java) 풀이 랭크 : 실버 1 백준 온라인 저지(BOJ) 3190번 뱀(snake) 문제 자바 풀이 백준3190번 뱀 코드 저는 푸는데 1시간 좀 넘게 걸렸어요 아래의 깃허브를 참고해주세요!! 백준3190번 뱀 문제이해 시작시 뱀은 맨위 맨 좌측에 위치. 처음에 오른쪽으로 향하며 초기 뱀의 길이는 1이다. 몸길이를 늘려 머리를 먼저 다음 칸에 가져다 댄다. if 사과 exists: 사과 없어지고 꼬리는 움직이지 않음 ( 몸 길이 늘어남 ) if !사과 exsists: 몸 길이를 줄여 꼬리가 위치한 칸을 비워줌 ( 몸 길이 그대로 ) 게임이 끝나는 시간 계산하기 ( 벽 또는 자기자신의 몸과 부딪히면 게임 끝) 벽은 상하좌우 끝에 있다. 문제 풀이 뱀 초기 위..
2020.02.09 -
BOJ 2589번 보물섬 문제 자바(java) 풀이 랭크 : 골드5 백준 온라인 저지(BOJ) 2589번 보물섬 문제 자바 풀이 백준 2589번 보물섬 코드 아래의 깃 허브(github)를 참고하세요 백준 2589번 보물섬 코드 문제정리 각 칸은 육지(L)나 바다(W)로 나뉘어져 있다. 이동은 상하좌우로 이웃한 육지로만 가능하다. 한 칸 이동하는데 한시간 걸린다. 보물은 서로 간에 최단 거리로 이동하는데 있어 가장 긴 시간이 걸리는 육지 두 곳에 나뉘어져 있다. 육지를 나타내는 두 곳 사이를 최단 거리로 이동하려면 같은 곳을 두 번 이상 지나거나, 멀리 돌아가면 안된다. 문제풀이 어느 한 지점에서 얼마나 떨어져 있는지를 서로 따지면 된다. 즉 dfs가 아닌 bfs로 따져가면 된다. 최단거리를 따지는 문제..
[백준 온라인 저지(BOJ)] 2589번 보물섬 자바(java) 풀이BOJ 2589번 보물섬 문제 자바(java) 풀이 랭크 : 골드5 백준 온라인 저지(BOJ) 2589번 보물섬 문제 자바 풀이 백준 2589번 보물섬 코드 아래의 깃 허브(github)를 참고하세요 백준 2589번 보물섬 코드 문제정리 각 칸은 육지(L)나 바다(W)로 나뉘어져 있다. 이동은 상하좌우로 이웃한 육지로만 가능하다. 한 칸 이동하는데 한시간 걸린다. 보물은 서로 간에 최단 거리로 이동하는데 있어 가장 긴 시간이 걸리는 육지 두 곳에 나뉘어져 있다. 육지를 나타내는 두 곳 사이를 최단 거리로 이동하려면 같은 곳을 두 번 이상 지나거나, 멀리 돌아가면 안된다. 문제풀이 어느 한 지점에서 얼마나 떨어져 있는지를 서로 따지면 된다. 즉 dfs가 아닌 bfs로 따져가면 된다. 최단거리를 따지는 문제..
2020.02.08 -
BOJ 2636번 치즈 문제 자바(java) 풀이 랭크 : 골드5 백준 온라인 저지(BOJ) 2636번 치즈 문제 자바 풀이 백준 2636번 치즈 백준 2636번 치즈 코드 문제정리 이 문제에서 주어진 정사각형 칸은 크게 세가지 영역으로 나뉨을 이해한다. 바깥쪽 공기 (치즈를 녹임) 치즈 안쪽 공기 (치즈를 녹일 수 없음) 바깥 공기와 접촉된 치즈는 녹는다. 녹아서 안쪽 공기도 바깥과 연결 된다면 그 공기에 의해서도 치즈가 녹을 수 있다. 치즈가 모두 녹아 없어지는데 걸리는 시간과 모두 녹기 전 치즈의 수를 구한다 문제풀이 bfs나 dfs를 이용하여 문제를 풀 수 있습니다. 이 문제는 구역을 나누는게 핵심입니다. dfs를 통해 치즈가 아니거나 바깥 공기인 경우 3으로 바꿔준다. dfs2를 통해 바깥공기(..
[백준 온라인 저지(BOJ)] 2636번 치즈 문제 자바(java) 풀이BOJ 2636번 치즈 문제 자바(java) 풀이 랭크 : 골드5 백준 온라인 저지(BOJ) 2636번 치즈 문제 자바 풀이 백준 2636번 치즈 백준 2636번 치즈 코드 문제정리 이 문제에서 주어진 정사각형 칸은 크게 세가지 영역으로 나뉨을 이해한다. 바깥쪽 공기 (치즈를 녹임) 치즈 안쪽 공기 (치즈를 녹일 수 없음) 바깥 공기와 접촉된 치즈는 녹는다. 녹아서 안쪽 공기도 바깥과 연결 된다면 그 공기에 의해서도 치즈가 녹을 수 있다. 치즈가 모두 녹아 없어지는데 걸리는 시간과 모두 녹기 전 치즈의 수를 구한다 문제풀이 bfs나 dfs를 이용하여 문제를 풀 수 있습니다. 이 문제는 구역을 나누는게 핵심입니다. dfs를 통해 치즈가 아니거나 바깥 공기인 경우 3으로 바꿔준다. dfs2를 통해 바깥공기(..
2020.02.07