📢 공지합니다
이 게시글은 메인 페이지에 항상 고정되어 표시됩니다.
사이트https://www.acmicpc.net/problem/1107 문제 분석서론오랜만에 풀어보는 코테이다! 지난 시험기간 및 동아리 활동때문에 많이 못했다. 이번 문제는 브로보토스 알고리즘이다. 설계하는데 시간을 좀 애먹었다. 풀이사용가능한 번호를 조합을 해서 그 번호가 최종 n이랑 유사해야된다. 그러기 위해서는 필자는 재귀함수를 사용했다. 5457 3 6 7 8 입력은 위와 같다고 가정 하겠다. min = Math.abs(100 - n); if (100 == n) { System.out.println(cnt); } else { solution(0); System.out.println(min); } 입력을 하고나서 위와 함수를 들어갈때 위와 같이 작업을 해줘야 된다. 맨 첫번째 줄 코드 의미는 번호..
사이트https://www.acmicpc.net/problem/2531 문제분석서론음 뭔가 문제 이해가 어려웠지 풀이는 너무 쉬웠다... 이게 실버1이라고 그리고 정답률이 37퍼라고??? 그래서 한번보자 이해 이해가 가지 않았던 문제이다. 위 사진 처럼 벨트가 저렇게 돌아가는데어떻게 순서가 이렇게 나오지 곰곰히 생각을 해봤다. 순서가 반대로 되야되는거 아닌가.... (2 30 7 9) (9 7 2 30) (25 9 7 2) 이렇게 되어야 되는게 아닌가... 일단은 뭐 풀어보니깐 순서는 중요하지가 않다. 다음은 쿠폰이다!! 만약 30번 쿠폰이 주어졌을시 연속으로 4개를 먹을때!! 즉 띄엄띄엄 먹지말고 연속으로 4개다!! 그걸 먹을때 30번 초밥을 무료로 준다는 것이다. 참고로 30번 쿠폰이 입력에 없을때..
사이트https://www.acmicpc.net/problem/12919문제분석매우 화가나는 문제이다. 일단 문제 자체는 어렵지 않았다. 이게 골드 문제가 맞는 문제인지 싶었다... 왜냐하면 너무 쉬웠기 때문이다. 하지만 문제를 풀어보니 계속 틀림... 일단 분석을 해보자 이해일단 이문제는 S와 T를 입력하고 나서S의 문자열의 뒤에 연산을 더해서 T와 같으면 1 아니면 0을 반환하는 문제이다.이때 연산은 첫번째 A를 더하기, 두번째 B를 더하고 뒤집기 이다. 그래서 필자는 처음에 S 문자열 2가지의 연산 방법을 활용해서 T를 구하는 식으로 구했으나..... 실수1public class Bra12919 { static String s; static String t; static int..
사이트https://www.acmicpc.net/problem/20055 문제분석문제만 잘이해한다면 어렵지 않은 문제다!! 이해하는데만 30분걸림.. 제대로 안읽어서 ㅜㅜㅜ 문제의 핵심은 내구도이다!! 문제의 이해를 돕기 위해 아래를 참고해보자 이해입력 부분: n은 컨테이너 가로 칸 갯수, k는 내구도가 0인 칸(조건) ex) 만약 내구도가 0인 칸이 k개 이상이면 종료!! 마지막으로 두번째 입력부분은 n*2개 칸의 내구도를 입력하는 부분이다. 3 21 2 1 2 1 2 입력은 위와 같이 받을것이다!! 참고로 두번째 입력부분에서 1 2 1 2 1 2 이렇게 입력받는데 실제 그림은 1 2 12 1 2 이다. 음 다시 말해서 만약 1 2 3 4 5 6 이렇게 입력받으면 실제 그림은 1 2 36 5 4..
사이트https://www.acmicpc.net/problem/3758 문제 분석아 열심히 작성했는데 날라갔다..... 차근차근 설명을 해보자 이번 문제는 간단했는데 구현이 복잡한 문제였다. 일단 입력을 전체 테스트케이스로 받고 그 후 팀의 개수, 문제의 개수, 내 팀 ID, 로그 갯수그 후 로그 갯수의 따라 팀 ID, 문제 번호, 획득 점수로 받는다. 입력을 다 받고 코드로 구현을 할라 했으나 너무 비효율적인거 같아서 입력을 받으면서 처리를 하도록 구현을 하였다. for (int j = 0; j 위 코드가 입력의 핵심 코드이다. totalScore 배열은 [팀별][팀별 당 문제] 로 선언을 하여 받았다. 이때 문제의 대한 조건은 아래와 같다. 1. 한 문제에 대한 풀이를 여러 번 제출할 수 있는데,..
사이트https://www.acmicpc.net/problem/3085 문제 분석정처기 때문에 코딩테스트를 많이 못해서 약 3주만에 다시 시작한다. 일단 문제설명이 너무 부실했다. 테스트 케이스를 통해 유추해본 결과 최대 사탕수를 먹을 수 있는 갯수라 해도 한 행 또는 열만 해당하는 것이다.즉 다시 말해서 한 행 또는 열에 연속된 최대 문자 갯수를 출력하는 것이다!또한 인접한 두 문자가 서로 다를 때만 바꿔야 된다. 전체적인 구현 방식을 bfs로 활용했다. private static void bfs() { Queue queue = new LinkedList(); queue.add(new int[]{0, 0}); while (!queue.isEmpty()) { int[] p..