알고리즘/알고리즘문풀

    BOJ - 연산자 끼워넣기 14888번 (python)

    ❓ 문제 - 백준 연산자 끼워넣기 14888번 - python 풀이법 출처 (https://www.acmicpc.net/problem/14888) 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 📝 문제해결법 1. 이 문제는 백트래킹(dfs)으로 풀었다. (+, -, *, /)의 연산자의 수를 add, sub, mul, div로 입력받는다. dfs()함수를 통해, 모든 숫자의 연산이 완료(depth=n) 되었으면 max_value와 min_value의 값을..

    BOJ - 로봇 청소기 14503번 (python)

    ❓ 문제 - 백준 로봇 청소기 14503번 - python 풀이법 출처 (https://www.acmicpc.net/problem/14503) 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현으로 풀었다. 로봇 청소기의 회전은 dx, dy로 (북-동-남-서)로 처리하며 change_dir() 함수를 통해 현재 바라보는 방향에서 왼쪽으로 회전했을 때 바라보게 되는 방향을 구한다. 처음 문제에 주어진대로 로봇이 처음 있는 곳은 청소가 가능한 곳이니 청소를 하고 answer = 1..

    BOJ - 퇴사 14501번 (python)

    ❓ 문제 - 백준 퇴사 14501번 - python 풀이법 출처 (https://www.acmicpc.net/problem/14501) 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 📝 문제해결법 1. 이 문제는 DP(동적계획법)으로 풀었다. 뒤에서 부터 탑다운 방식으로 상담 비용의 최대 이윤을 구한다. 만약 i일에 상담할 때 퇴사 날짜를 넘으면 해당 날짜에 상담을 시작할 수 없으므로 해당 dp[i]값은 dp[i+1] 만약 i일에 상담을 시작하는 게 가능하면, i일에 상담을 하는 경우와 상담을 하지 않는 경우 중 비용이 큰 값으로 선택해서 dp[i]을 갱신한다. 💻 소스코드 # 퇴사 - BOJ 14501 # DP n = int(input()) t..

    BOJ - 주사위 굴리기 14499번 (python)

    ❓ 문제 - 백준 주사위 굴리기 14499번 - python 풀이법 출처 (https://www.acmicpc.net/problem/14499) 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현으로 풀었다. 주사위의 윗면-뒤쪽-오른쪽-왼쪽-앞쪽-바닥면에 대한 값들을 dice 인덱스를 통해 저장 지도의 값을 board를 통해 저장한다. 주사위를 움직일 때 dx, dy(동-0, 서-1, 북-2, 남-3)를 이용해서 ..