반응형
반응형
https://www.acmicpc.net/problem/14503 난이도: solved.ac 골드 5 문제는 정말 길지만 시키는 대로만 만들면 돼서 생각보다 쉬운 문제다 그치만,, 구현하는데 실수를 해서 애를 먹었는데 아무도 궁금해하진 않겠지만 내가 실수했던 부분을 기록해 보겠다 (똑같은 실수를 하는 분들을 위해...) 분명 오류 난 부분도 없는데 문제의 예제 2를 입력하면 출력으로 20이 나왔다 ㅠ 알고 보니 문제에서 설명하는 로봇 청소기 작동 단계 2번 부분에서 '바라보는 방향을 유지한 채로 한 칸 후진할 수 있다면 한 칸 후진하고 1번으로 돌아간다.'를 구현할 때 '바라보는 방향을 유지한 채로'는 맞게 구현했지만 '한 칸 후진'이 아닌 '앞으로 한 칸'으로 구현했다 이것 때문에 내가 문제를 잘못 ..
난이도: SWEA D2 다른 분들의 코드를 보니 대부분 2차원 배열을 이용해 풀었던데 나는 1차원 배열을 이용해 풀었다 (조금 난잡하긴 하지만...) 1차원 배열 a와 b를 이용해 수를 나타냈는데 파스칼의 삼각형에서 각 숫자 b[i] 는 자신의 왼쪽 위 숫자 a[i - 1]와 자신의 오른쪽 위 숫자 a[i]의 합이라는 성질을 이용하였다 배열 a는 직전 행의 숫자를 나타내고 배열 b는 출력할 행의 숫자를 나타낸다 그리고 배열 c는 현재의 행인 배열 b의 값을 다음 행에서 사용해야 하므로 배열 a로 넘겨주기 위해 temp 형태로 사용했다 (코드) #include int a[11]; int b[11]; int c[11]; int main() { int test_case, T; int N, i, k; scanf..
https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 난이도: solved.ac 실버 2 LIS(Longest Increasing Subsequence)문제다. 나는 DP를 이용해 풀었다. #define _CRT_SECURE_NO_WARNINGS #include #define MAXLEN 1000 #define max(a,b) ((a)>(b)?(a):(b)) int mai..
https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 난이도: solved.ac 실버 3 #define _CRT_SECURE_NO_WARNINGS #include #define max(a,b) ((a)>(b)?(a):(b)) int stairs[301]; int dp[301]; int main() { int n, i; scanf("%d", &N); for (i = 1; i
https://www.acmicpc.net/problem/1149 1149번: RGB거리첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나www.acmicpc.net난이도: solved.ac 실버 1 예제 1을 가지고 설명해보겠다 예제 1의 input을 표로 나타내면 아래와 같다 REDGREENBLUE1번2640832번4960573번138999 일단 dp 문제답게 n 번째까지의 합을 구할 때 n - 1 번째까지의 합을 이용할 건데, 내 풀이에서 핵심은 Red, Green, Blue를 일단 모두 칠해보고 그때의 각 최솟값을 구하는 것이다 여기서..