Algorithm

Algorithm

[백준] 9663. N-Queen

문제 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 구조화 입력받은 map 2차원 배열의 맨 왼쪽 열부터 순열로 가능한 부분에 하나씩 놓으면서 맨 마지막 열까지 채울 경우 ans ++ 가능한 부분 : 퀸이 움직일 수 있는 범위인 상하좌우 그리고 대각선이 아닌 부분을 의미 (해당 구현방식으로 구현시 행과 같거나 대각선이 아닌부분만 체크해 주면 된다. 열마다 하나씩 밖에 놓이지 않기 때문에 상하는 판별하지 않아도 된다.) 코드 import java.io.*; import java.util.*; public class Main ..

Algorithm

[백준] 15686. 치킨 배달

문제 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합이다. 임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2|로 구한다. 예를 들어, 아래와 같은 지..

Algorithm

[백준] 16236. 아기 상어

구조화 BFS를 이용하는 구현문제 입력을 받으면서 아기상어 위치 x ,y좌표 얻음 입력을 받는데 물고기가 없다면 0출력후 종료 (입력을 받으면서) 물고기의 위치(x,y)를 저장하는 메소드 생성[ 물고기 위치 저장] 물고기 위치에 따른 아기상어와의 거리 측정(가장 가까운 먹어야할 타겟 정하기) bfs & 레벨별 탐색(시간 체크) & 사방탐색 후 먹고 다시 3번~4번 진행 코드 import java.io.*; import java.util.*; /** 0 빈칸 1~6 칸에있는 물고기 크기 9 아기상어 위치 * 신경써야할 부분 - 벌크업하기 위한 카운트 생성(먹을때 ++) - 먼저 먹어야 할 순서 정하기(먹을 수 있는 애 먼저) - 못먹으면 종료조건발생 - 같은 물고기는 이동가능 */ public class ..

Algorithm

[백준] 4179. 불!

구조화 BFS를 이용하는 문제 불을 먼저 이동하고 사람이 이동하는 순서로 알고리즘 구현 레벨별 BFS를 적용했음 SWEA 오! 나의 여신님, 백준의 탈출과 같은 유형 소스 코드 import java.io.*; import java.util.*; public class Main { /** * 0. #: 벽, .:길, j: 초기위치, F: 불이난 공간 * 1. 불을 먼저 카운트 해서 리스트에 넣어둔다 * 2. 리스트에 있는 불의 좌표(x,y)를 기준으로 불을 먼저 퍼뜨린다. * 3. 사람이 이동한다 * 4. 도달했을 시에 체크한다(못 움직일 때도 체크한다) */ static int R, C, startX, startY, ans, listSize, listStart; static char[][] map; st..

Algorithm

[SWEA] 7793. 오! 나의 여신님

구조화 악마 스킬 발동 → 수진 이동 → 갈 수 있는지 확인의 순서로 구현 주의할 점 초기화 부분에서 에러가 날 수 있으니 신경 써주어야 한다는 점 구현 순서에 대해서 생각 잘 해보기 큐에서 하나 꺼내며 탐색할 때마다 악마를 퍼뜨리는 것이 아닌, 큐에서 같은 이동횟수를 가진 것들을 모두 탐색하고 악마를 퍼뜨려야함(레벨별 탐색 필요) /** * 1. 내가 이동한다 * 2. 악마의 손아귀 스킬 발동한다 * 3. 갈 수 있는지 확인한다. */ 코드 import java.io.*; import java.util.*; public class Solution_7793_오나의여신님{ static int N, M, level; static int startX, startY, endX, endY; static boole..

Algorithm

[SWEA] 1949. 등산로 조정

구조화 2차원 배열(map)을 입력받을 때 제일 큰 값을 mapHigh에 저장 map을 순회하면서 가장 큰 값이 있는 인덱스를 list에 저장 0 ~ k만큼 map을 순회하며 해당 값 - k 가 ≥ 0인 부분에 대해서만 bfs 탐색 bfs탐색이 끝나면 다시 해당 값에 k를 더해준다. bfs는 level 별 탐색을 진행하며 해당 과정이 끝나면 ans와 비교하며 update를 진행한다. ans > level 일 경우 ans를 최신화 ans 출력 BFS를 쓴 이유 : DFS보다 BFS관련 문제들을 더 많이 접하게 되면서 조금 더 익숙했었고, 이번 문제의 경우 BFS로 구현이 가능할 것이라고 판단이 되어 BFS을 사용하였다. BFS를 잘 안다면 DFS문제 또한 구현이 가능하다는 말을 들어 DFS에 소홀히 하기도..

Algorithm

swea 1933. 간단한 N 의 약수

문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=1&contestProbId=AV5PhcWaAKIDFAUq&categoryId=AV5PhcWaAKIDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=1&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 코드 import java.util.Scanner; class Solution { public static void ..

Algorithm

swea 1938. 아주 간단한 계산기

문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 코드 import java.util.Scanner; class Solution { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(Math.round(a/b)); } }

거북목을 가진 김기린
'Algorithm' 카테고리의 글 목록 (12 Page)