알고리즘

알고리즘/구현

[BOJ] 백준 2002 - 추월 풀이

1. 문제 https://www.acmicpc.net/problem/2002 2002번: 추월 입력은 총 2N+1개의 줄로 이루어져 있다. 첫 줄에는 차의 대수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 대근이가 적은 차량 번호 목록이 주어지고, N+2째 줄부터 N개의 줄에는 영식이 www.acmicpc.net 2. 풀이 백준 알고리즘 카테고리에 구현으로 분류된 문제다. 입력은 차량의 수와, 들어온 차량의 번호가 순서대로 주어지고, 나간 차량의 번호가 순서대로 주어진다. 우리가 구해야 하는 것은 반드시 추월한 차량이 몇 대인지를 구하는 것이다. 예제 입력 1에서 힌트를 얻을 수 있다. 예제 입력 1을 보면 마지막으로 들어온 차량인 ZG206A가 모든 차량을 추월했다면, 나간 순..

알고리즘/구현

[BOJ] 백준 2535 - 아시아 정보올림피아드 풀이

1. 문제 https://www.acmicpc.net/problem/2535 2535번: 아시아 정보올림피아드 첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사 www.acmicpc.net 2. 풀이 백준 알고리즘 분류에서 구현으로 분류된 문제이다. 이번 문제에서는 입력의 가짓수가 국가 번호, 학생 번호, 점수로 3개이다. 이 풀이에서는 가짓수를 담을 static class를 하나 선언하여 데이터를 저장하였다. 입력에서 국가의 갯수를 알려주지 않았으므로, 중복된 입력을 막는 Set을 하나 선언하여 국가의 갯수를 파악했다. 그리고 점수에 따라 메달을 ..

알고리즘/구현

[BOJ] 백준 10709 - 기상캐스터 풀이

1. 문제 https://www.acmicpc.net/problem/10709 10709번: 기상캐스터 출력은 H 행으로, 각 행에는 공백으로 구분된 W 개의 정수를 출력한다. 출력의 i 번째 행 j 번째 정수 (1 ≦ i ≦ H, 1 ≦ j ≦ W) 는, 지금부터 몇 분후에 처음으로 구역 (i, j) 에 구름이 뜨는지를 표시 www.acmicpc.net 2. 풀이 간단한 구현 및 시뮬레이션 문제이다. 각 줄의 입력을 받아 H, W, 배열을 초기화 해준 후, 조건에 맞게 코드를 작성하면 해결된다. 첫번 째로 선정한 조건은 배열의 첫 번째 열의 값이 '.'이냐를 판단하는 것이다. 이때는 반복문을 돌면서 'c'가 나올 때 까지 -1을 결과 배열에 넣어줘야 하므로 first_c_flag 변수를 선언하고 fal..

알고리즘/브루트포스

[BOJ] 백준 2303 - 숫자 게임 풀이

1. 문제 https://www.acmicpc.net/problem/2303 2303번: 숫자 게임 N명이 모여 숫자 게임을 하고자 한다. 각 사람에게는 1부터 10사이의 수가 적혀진 다섯 장의 카드가 주어진다. 그 중 세 장의 카드를 골라 합을 구한 후 일의 자리 수가 가장 큰 사람이 게임을 이 www.acmicpc.net 2. 풀이 구현과 브루트포스 알고리즘으로 분류된 문제이다. 첫 줄의 입력으로 주어지는 테스트 케이스 횟수에 맞춰서 n번째 사람의 카드를 입력받은 후, 각각의 사람 별로 받은 카드 중에서 일의 자리 숫자의 합이 가장 큰 경우를 구한다. 그 후 main으로 돌아와서 현재까지의 가장 큰 경우와 비교하면서 가장 큰 일의 자리 수를 만들 수 있는 사람을 구하면 된다. 3. 소스 코드 impo..

알고리즘/문자열

[BOJ] 백준 1251 - 단어 나누기 풀이

1. 문제 https://www.acmicpc.net/problem/1251 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 2. 풀이 문자열 관련 문제이고 브루트포스로 해결하였다. 단어를 세 부분으로 나누어야 하기에, 나누는 포인트(/) 2개를 브루트포스 알고리즘으로 나눌 수 있는 모든 문자열을 구하여 각각 뒤집고 합친 후 리스트에 추가한다. 그 후 Collections.sort()로 정렬하면 기본적으로 오름차순으로 정렬되기에, 리스트의 첫 번째 인덱스에 들어있는 문자열이 사전순으로 가장 앞선 문자열이 된다...

알고리즘/DP

[BOJ] 백준 1535 - 안녕 풀이

1. 문제 https://www.acmicpc.net/problem/1535 1535번: 안녕 첫째 줄에 사람의 수 N(≤ 20)이 들어온다. 둘째 줄에는 각각의 사람에게 인사를 할 때, 잃는 체력이 1번 사람부터 순서대로 들어오고, 셋째 줄에는 각각의 사람에게 인사를 할 때, 얻는 기쁨이 1번 www.acmicpc.net 2. 풀이 베낭 알고리즘 문제이다. 물건의 개수가 사람의 수가 되었고, 가방의 무게 제한 대신 체력이 존재한다. 처음에 문제를 해결할 때는 체력 제한을 조건문으로 판별하려다 실패했고, 다른 분의 풀이를 참고하여 문제를 해결했다. 2중 반복문으로 탐색을 진행하는데, health_arr의 인덱스보다 크거나 같을 때까지 탐색을 진행하는 것이 포인트이다. 이렇게 탐색하면 선택된 인덱스의 체력..

알고리즘/그래프

[BOJ] 백준 1743 - 음식물 피하기 풀이

1. 문제 https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 2. 풀이 백준에서 탐색 문제로 분류되어 있다. BFS, DFS의 개념을 알고 있다면 크게 어려울 것이 없는 문제였다. 핵심은 음식물 쓰레기가 있는 지점부터 시작하여 탐색을 진행하는데, 상하좌우에 쓰레기가 있으면 하나의 쓰레기 묶음으로 처리되므로, 다음 번을 탐색할 때 음식물 쓰레기가 있는지를 판단해주어 탐색을 하면 충분히 해결된다. 3. 소스 ..

알고리즘/그래프

[BOJ] 백준 17086 - 아기 상어 2 풀이

1. 문제 https://www.acmicpc.net/problem/17086 17086번: 아기 상어 2 첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸과 상어의 수가 각각 한 개 이상인 입력만 www.acmicpc.net 2. 풀이 BFS 문제이다. 처음 문제를 읽고, 예제 입력을 봤을 때는 무슨 말인지 이해가 안됬지만, 예제를 하나씩 따라가다 보면 충분히 이해할 수 있는 문제였다. 우선 점의 x, y 좌표와 그 점까지의 거리값을 넣을 static class를 하나 선언해준다. 그 다음 입력을 받고 점들을 반복문으로 탐색하면서 1이 아닌 0인 점부터 bfs 탐색을 시작한다. ..

송승현(SSH)
'알고리즘' 카테고리의 글 목록 (10 Page)