반응형
반응형
https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 난이도: solved.ac 실버 4 정렬과 이분 탐색(Binary Search)을 활용한 문제다 나는 A라는 배열에 M개의 수를 저장한 후 qsort를 돌려주었고 B라는 배열에 M개의 수를 저장한 후 Binary Search 함수를 이용해 값이 있으면 1, 값이 없으면 0을 리턴하도록 만들었다 만약 나처럼 compare 함수를 이렇게 썼다면 아래의 ..
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