PS/SW Expert Academy 3

[SWEA 19004] 점프 놀이 [C/C++]

문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 입력으로 주어진 정사각형 타일 바닥(board)에 적혀있는 번호에 대해 1부터 K까지 1씩 증가하는 타일로 이동하는 dp문제다. 이동거리는 문제에서 주어진 조건 대로 구할 수 있다. 총 거리의 최솟값을 구해야 하기 때문에 N*N 크기의 dp배열의 모든 요소를 최댓값으로 저장해주자. board를 입력받으며, 타일의 번호( board[i][j] )가 1인 경우에는 시작점 이므로 dp[i][j]를 0으로 해주자. 또한, 타일의 번호가 1~K의 모든 수가 나온다는 보장이 없다. 따로 확인해주자. 입력을 다 받은 후, 게임이 가능한지 확인하자. 1 ~ K 번호의..

[SWEA 19003] 팰린드롬 문제 [C/C++]

문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 길이가 M인 서로 다른 문자열 N개가 주어졌을 때, 문자열을 결합하여 만들 수 있는 최장길이의 팰린드롬 문자열의 길이를 구하는 문제다. N, M이 각각 최대 100, 50으로 매우작아 N^2 방식으로 풀이해도 충분하다. N개의 문자열에 대해 중복되는 문자열은 없다. 따라서 팰린드롬 문자열이 만약 존재한다면 한 번만 사용 가능하다. 펠린드롬 문자열이 아닌 경우에만 벡터에 담아주자. 벡터에 담은 문자열의 갯수가 N보다 작다면, 펠린드롬 문자열이 최소 1개이상 존재한다. 따라서 위에서 언급했듯 최장 팰린드롬 문자열을 만들 때 사용하기 위해 한 번만 사용해주자..