전체 글

전체 글

    BOJ - 스타트와 링크 14889번 (python)

    ❓ 문제 - 백준 스타트와 링크 14889번 - python 풀이법 출처 (https://www.acmicpc.net/problem/14889) 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 📝 문제해결법 1. 이 문제는 백트래킹(dfs)으로 풀었다. 스타트와 링크 두 팀으로 나누기 위하여 한 팀에 속하면 visited 리스트를 통하여 방문처리 해주면서 재귀함수 형태로 만든다. 만약 한 팀에 속한 팀원의 명수가 n//2로 다 채워졌으면 스타트팀의 능력치와 링크팀의 능력치를 구한다. 방문처리된 팀이 스타트팀이라고 하면, 방문처리 안..

    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..