대회 링크 https://codeforces.com/contest/1804 A. Lame King https://codeforces.com/contest/1804/problem/A 문제 풀이 킹이 (0, 0)에 위치할 때, 도착해야 하는 목적지 (a, b)까지 도착할 때 이동 횟수의 최솟값을 출력하는 문제 킹이 할 수 있는 행동은 대각선을 제외한 인접한 구역에 이동하는 것과 이동을 멈출 수 있다. 킹은 같은 행동을 연속으로 하지 못한다. 이를 바탕으로 해결 방법은 다음과 같다. (0, 0)에서 a, b의 절댓값의 최소 값(min(abs(a), abs(b)))의 위치로 먼저 이동한다. 대각선으로 이동하는 것이므로 이동 횟수는 2 * min(abs(a), abs(b))이다. 남은 거리가 있는 경우는 해당 구..
대회 링크 https://codeforces.com/contest/1802 A. Likes https://codeforces.com/contest/1802/problem/A 문제 풀이 주어진 배열을 이용해 가장 큰 배열과 가장 작은 배열을 출력하는 문제 양수가 있는 배열인 arr와 음수가 있는 배열인 marr를 구분한다. max_arr는 1부터 max(arr)까지 한 다음 감소하는 형태로 배열을 만들면 된다. min_arr는 arr에서 하나, m_arr에서 하나씩 먼저 만들어 두고 남은 arr로 배열을 만들면 된다. 제출 코드 # 2023/03/09 Implementation # https://codeforces.com/contest/1802/problem/A for _ in range(int(input..
대회 링크 https://codeforces.com/contest/1800 A. Is It a Cat? https://codeforces.com/contest/1800/problem/A 문제 풀이 주어진 조건에 맞춰 "MEOW"란 단어가 될 수 있는지 확인하는 문제 주어진 문자열 안에 "MEOW"를 제외한 단어가 들어가면 불가능 "MEOW"의 순서가 바뀐 경우 불가능 문자열 전체를 확인해서 가능한지를 확인해 본다. 입력은 upper() 또는 lower()로 받아야 한다. 해당 문자열이 "MEOW" 안에 없는 경우 불가능한 것이므로 flag = False이고, 종료한다. 해당 문자열의 현재 위치에서 좌우를 확인해서 "MEOW"의 순서가 다를 경우 불가능한 것이므로 flag = False이고, 종료한다. 현..
대회 링크 https://codeforces.com/contest/1795 A. Two Towers https://codeforces.com/contest/1795/problem/A 문제 풀이 두 개의 탑이 각각 색이 연속되지 않는 경우 "YES"를 출력하고, 연속되는 경우 "NO"를 출력한다. 각각의 탑은 맨 위의 색을 다른 탑에 넘길 수 있다. 내가 시도한 풀이는 두 탑의 맨 위의 색이 같지 않은 경우 넘기고, 같은 경우는 그대로 종료한다. 그런 다음 색이 연속되는지를 확인하고, 다른 탑의 경우도 똑같이 시험한다. 만약 연속되지 않는 경우가 하나라도 있다면 "YES"를 출력, 둘 다 연속된다면 "NO"를 출력한다. + 다른 풀이 : 두 타워의 정보를 이어 붙인 다음 탐색을 시작한다. 만약 같은 색이 ..
대회 링크 https://codeforces.com/contest/1792 A. GamingForces https://codeforces.com/contest/1792/problem/A 문제 풀이 2 개체의 체력을 각각 1씩 감소하는 방법과 하나의 체력을 전부 감소시키는 방법을 통해 모든 개체의 체력이 0이 된다고 할 때, 그 최소 횟수를 출력하는 문제 현재 대상의 값을 구하고 만약 그 값이 1보다 크다면 1 개체를 선택에서 없애는 것이 더 좋은 방법이다. 따라서 0인 경우는 넘기고, 1인 경우는 각각 감소시키고(배열안에 값이 있는 경우), 그 이상인 경우는 하나를 선택해 0으로 만든다. 제출 코드 # 2023/02/15 Greedy # https://codeforces.com/contest/1792/p..