일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Spring
- gradle
- pscp
- java
- 10844
- junit
- decorator
- designpattern
- 백준
- NamedParameterNotBound
- Linux
- 전치행렬 #C
- mycp
- @Spring
- 10951
- 숫자야구
- @ModelAttribute
- setParameter
- 디자인패턴
- 데코레이터패턴
- @NotEmpty
- C
- 자료구조
- 쉬운 계단 수
- springboot
- 자바
- 여러인수
- BubbleSorting
- 점세개
- createQuery
- Today
- Total
목록백준 (8)
...

1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net BFS 문제로, 간단한 탐색 문제이다. 행과 열을 2차원 배열로 받아 B, W 각각 너비우선탐색 후 모여있는 병사들의 값을 제곱해 더하고 결과를 내주면 된다. 진짜 간단한 문제라 해결책 찾는 건 어렵지 않았는데 자꾸 13%에서 죽어버려서 거의 2시간은 헤맨 거 같다ㅜㅜ 결과적으론 문제 제대로 안 읽어서 이렇게 헤맸던 것... 문제를 자세히 보면 가로 길이가 N, 세로 길이가 M. 즉 행이 M 열이 N인데 보통 대부분의 문제들에서 먼저 오..

13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 어려운 문제는 아니었는데 문제 이해 잘못 해서 엄청 헤맸다. 사람이 N명이면 depth가 N-1개 있을 경우 1을 반환하는 것으로 이해했는데, 그냥 5명만 연결되어 있으면 (depth=5이면) 해결되는 문제였다. DFS로 백트래킹 이용하면 쉽게 풀림! #include #include #include #include using namespace std; int N,M; //N-사람수 M-관계수 int visited[2001] = {0,}; vector relation; bool flag = false; void solve(int idx, int depth){ //조건을 ..
10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net [ 풀이 규칙 ] 배열의 뒤에서부터 arr[i]와 arr[i+1]을 비교한다.arr[i]=1; i--){ if(!(arr[i]>arr[i+1])){ //arr[i]N; for(int i=1; i>arr[i]; } if(solve()){ //마지막 순열일 경우 -1을 출력한다. cout

15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 겨우 이 문제로 한 시간 넘게 해맸다는게 현타,,,제대로 알기 위해 왜 틀렸는지 하나하나 정리해보려고 한다. [ 틀린 제출 1 ] #include #include #define MAX 9 using namespace std; int n,m; int arr[MAX] = {0,}; int visited[MAX] = {0,}; int res[MAX] = {0,}; void dfs(int cnt) { if(cnt == m) //cnt == m이면 결과 배열 차례로 출력..
https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이 www.acmicpc.net 재귀 함수를 이용하여 문제를 해결하였다. [ 해결 ] #include #include using namespace std; int N = 0; //이동하고자 하는 채널 번호 (0 ≤ N ≤ 500,000) int M = 0; //고장난 번호의 개수 (0 ≤ M ≤ 10) int broken[10]={}; int start = 100; //초기 채널 번호 int min_click ..

하나도 안 쉬운 계단 수 문제 DP 너무너무 어려움 ㅜㅜㅜㅜㅜㅜㅜㅜ 눈물 난다요 배열들의 규칙을 찾아내는 요령이 아직 부족한 것 같다 많이 풀어봐야 될 듯 Dynamic Programming 의 Bottom - Up 방식을 활용하여 문제를 해결하였다. 가장 먼저 규칙을 살펴 보아야 한다. 행 부분은 N, 즉 길이를 의미하고 열 부분은 계단수의 마지막 수를 의미한다. 첫번째 행을 보면, 길이가 1이기 때문에 가장 앞자리에 올 수 없는 0을 제외하고 1개씩 수가 존재하는 것을 볼 수 있다. 두번째 행을 보면, 길이가 2이기 때문에 가장 마지막에 모든 숫자가 올 수 있다. [2][2] 라는 자리의 뜻은, 길이가 2이며 마지막에 2가 오는 수, 즉 12와 32를 뜻한다. 이는 첫번째 행의 [1][1]과 [1][..

import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int nums[] = new int[num]; for(int i=0;i

문제를 이해 못 해서 헤맸다... 한 케이스 입력 -> 결과 출력 -> 다시 입력 -> 출력 -> 입력값이 더이상 없으면 종료 Scanner 의 hasnext()를 이용하여 문제를 해결하였다. import java.util.Scanner; public class Main { public static void main(String[] args) { int a,b; Scanner sc = new Scanner(System.in); while(sc.hasNext()) { a = sc.nextInt(); b = sc.nextInt(); System.out.println(a+b); } } }