알고리즘/BOJ 1235

백준 2842번 집배원 한상덕

문제 링크입니다: https://www.acmicpc.net/problem/2842 2842번: 집배원 한상덕 문제 상덕이는 언덕 위에 있는 마을의 우체국에 직업을 얻었다. 마을은 N×N 행렬로 나타낼 수 있다. 행렬로 나뉘어진 각 지역은 우체국은 'P', 집은 'K', 목초지는 '.' 중 하나로 나타낼 수 있다. 또, 각 지역의 고도도 알고 있다. 매일 아침 상덕이는 마을의 모든 집에 우편을 배달해야 한다. 배달은 마을에 하나밖에 없는 우체국 'P'가 있는 곳에서 시작한다. 상덕이는 현재 있는 칸과 수평, 수직, 대각선으로 인접한 칸으로 이동할 수 있다. 마지막 www.acmicpc.net 특이한 유형의 BFS 문제였습니다. 상하좌우 뿐만 아니라 대각선도 탐색해야하고 피로도도 고려해야합니다. 이 문제에..

알고리즘/BOJ 2019.09.21

백준 3649번 로봇 프로젝트

문제 링크입니다: https://www.acmicpc.net/problem/3649 3649번: 로봇 프로젝트 문제 상근이와 선영이는 학교 숙제로 로봇을 만들고 있다. 로봇을 만들던 중에 구멍을 막을 두 레고 조각이 필요하다는 것을 깨달았다. 구멍의 너비는 x 센티미터이고, 구멍에 넣을 두 조각의 길이의 합은 구멍의 너비와 정확하게 일치해야 한다. 정확하게 일치하지 않으면, 프로젝트 시연을 할 때 로봇은 부수어질 것이고 상근이와 선영이는 F를 받게 된다. 구멍은 항상 두 조각으로 막아야 한다. 지난밤, 상근이와 선영이는 물리 실험실에 들어가서 레고 조각의 크기를 www.acmicpc.net 어렵지 않은 이분 탐색 문제였는데 테스트 케이스 개수가 주어지지 않아 꽤나 고생했던 문제였습니다. 조건을 scanf..

알고리즘/BOJ 2019.09.21

백준 1662번 압축

문제 링크입니다: https://www.acmicpc.net/problem/1662 1662번: 압축 압축되지 않은 문자열 S가 주어졌을 때, 이 문자열중 어떤 부분 문자열은 K(Q)와 같이 압축 할 수 있다. K는 한자리 정수이고, Q는 0자리 이상의 문자열이다. 이 Q라는 문자열이 K번 반복된다는 뜻이다. 압축된 문자열이 주어졌을 때, 이 문자열을 다시 압축을 푸는 프로그램을 작성하시오. www.acmicpc.net 자소서 쓰느라 바빠서 오랜만에 포스팅하네요. 같은 학회원 분이 질문을 하셨던 문제라 풀어봤던 문제였습니다. 이 문제의 핵심은 먼저 괄호의 쌍의 위치를 전처리를 통해 파악하고 재귀함수를 통해 길이를 구하는 것이었습니다.

알고리즘/BOJ 2019.09.18

백준 15654번 N과 M (5)

문제 링크입니다: https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net visited 배열을 사용해야한다는 생각만 했다면 간단히 풀 수 있는 백트래킹 문제였습니다.

알고리즘/BOJ 2019.08.25

백준 15650번 N과 M(2)

문제 링크입니다: https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 범위가 작기 때문에 쉬운 백트래킹 문제였습니다. idx가 0일 때와 1 이상일 때를 나누어 생각하면 쉽게 풀 수 있는 문제였습니다.

알고리즘/BOJ 2019.08.21

백준 2981번 검문

문제 링크입니다: https://www.acmicpc.net/problem/2981 2981번: 검문 문제 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간을 때우기 위해서 수학 게임을 하기로 했다. 먼저 근처에 보이는 숫자 N개를 종이에 적는다. 그 다음, 종이에 적은 수를 M으로 나누었을 때, 나머지가 모두 같게 되는 M을 모두 찾으려고 한다. M은 1보다 커야 한다. N개의 수가 주어졌을 때, 가능한 M을 모두 찾는 www.acmicpc.net 수학적 사고를 요구하는 문제였습니다. 어떠한 숫자를 m으로 나누었을 때 나머지가 r이라면 해당 숫자는 아래와 같이 표기할 수..

알고리즘/BOJ 2019.08.08

백준 2858번 기숙사 바닥

문제 링크입니다: https://www.acmicpc.net/problem/2858 2858번: 기숙사 바닥 문제 상근이는 기숙사 생활을 한다. 상근이의 방의 크기는 L*W 이다. 수업시간에 타일 채우기 경우의 수를 계산하던 상근이는 자신의 방도 1*1크기 타일로 채우려고 한다. 이때, 가장자리는 빨간색으로, 나머지는 갈색으로 채우려고 한다. 아래 그림은 상근이의 방의 크기가 4*3일 때 이다. 어느 날 상근이네 방에 하근이가 놀러왔다. 하근이는 아름다운 타일 배치에 감동받았다. 다시 방으로 돌아온 하근이는 빨간색과 갈색 타일의 개수는 기억했지만, 방의 크기는 www.acmicpc.net 상대적으로 쉬운 문제였습니다. R과 B의 범위가 크지 않기 때문에 브루트포스로 풀 수 있는 문제였습니다.

알고리즘/BOJ 2019.08.08