![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRRZ4B%2FbtsAFtUQgDv%2FLAGmjlyxnQ53Kc0bfWbw5K%2Fimg.png)
1. 문제 20529번: 가장 가까운 세 사람의 심리적 거리 각 테스트 케이스에 대한 답을 정수 형태로 한 줄에 하나씩 출력한다. www.acmicpc.net 세 명의 심리적 거리를 구하고 가장 최솟값을 찾는다. 세명의 심리직 거리 = (A와 B의 심리적 거리) + (B와 C의 심리적 거리) + (C와 A의 심리적 거리) MBTI는 겹칠 수도 있으며, 같은 MBTI간의 심리적 거리는 0이다. 2. 풀이 생각 문제는 가장 최소가 될 수 있는 세명을 어떻게 찾느냐이냐. 세명을 찾기 위해 완전 탐색을 하게 되면 십만X십만X십만으로 10의 15승이 되고, 시간초과가 난다. 그러므로 완전 탐색은 방법이 아니다. 방법은 mbti의 종류가 16개인 것을 이용하는 것이다. 사람의 수가 아무리 많아도 MBTI는 16종류..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fes3ik0%2FbtsAFttB64S%2F04G7xBgMTLzBvkFvK52BYk%2Fimg.png)
1. 💎 문제 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 한 계단, 두 계단 씩만 이동 가능 연속한 3개의 계단 불가 마지막 계단 반드시 밟음 얻을 수 있는 총 점수의 최댓값 구하기 2. 🤔 풀이 생각 이 문제의 핵심은 2계단을 가면 무조건 이동해야 한다는 것이다. 3 계단을 가지 전에 끊어줘야 하므로, 현재 계단에서 선택할 수 있는 경우의 수는 2가지뿐이다. 1. 직전의 계단(n-1)을 밟고 현재 계단을(n)을 밟는다. 2.두 번째 전 계단(n-2)을 밟고 현재 계단(n)을 밟는다. 여기서 1번은 세 계단을 이어서..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbm33ZO%2FbtsACkKcZnW%2FKc7LjkD0eqCzWhZ3v1nWB0%2Fimg.png)
1. 💎 문제 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 케빈 베이컨의 수가 가장 작은 사람을 출력한다. 케빈 베이컨은 모든 사람과 케빈 베이컨 게임을 했을 때 나오는 단계의 합이다. 2. 🤔 어떻게 풀까? 사람마다 한명 씩 모든 사람과의 케빈 값을 구한 후 모두 더해, 가장 낮은 사람을 출력하면 되겠다. 케빈 값을 구하는 방법은 DFS를 사용해서 깊이를 더해주면서 구하면 되겠다. 하지만 틀렸다. DFS를 사용하면 모든 사람과의 관계의 단계를 알 수 있지만..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKvsnT%2FbtsAy8JqXfb%2Ffz1e4YTiuk3REkqcsjtYm1%2Fimg.png)
1. 💎 문제 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이 www.acmicpc.net 2. 🤔 어떻게 풀까? 이 문제의 핵심은 주어진 번호들로 얼마나 근사치를 만들 수 있느냐이다. 고민을 많이 했다가 생각난 방법이 그리디였다. 자릿수마다 가장 크기 차이가 안나는 수를 선택하는 작업을 반복한다. 만약 주어진 수가 `54321`이라면 가장 첫 번째 수인 5와 가장 가까운 수를 망가지지 않은 버튼들에서 찾는다. 모두가 망가지지 않았다면 4와 6일 것이다. 하지만 여기서 4와 6중 무엇을 선택해야 할까? 나는 여기서 다음..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbw8ejp%2FbtsAw65FN53%2F7ag0MTTTmiSTdGXa8K1G21%2Fimg.png)
1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 어떻게 풀까 처음에 문제를 잘못 읽어서 횟수가 10번인 줄 알고 어떻게 찾아냐 하나 난감했는데, 1번만 연산하면 되는 것이었다. 잘 알려진 공식 `2b = a + c`를 이용하기로 했다. 2b -a -c를 2로 나줘주면 정답이다. 이때 절대값으로 바꿔줘야 한다.하지만 이렇게만 구현하면 오답처리된다. 왜냐하면 수 세개의 부호가 다르면 결과가 다르기 때문이다. 0일 때는 상관 없지만 세 수중 하나라도 부호가 다르면 나누기 2를 하지 않아야 한다. 왜인지는 잘 모르겠다.. 계산해보니 나누기 2를 안하니깐 딱 맞아 떨어진다. 3. 코드 class Solu..