목록코딩테스트/백준 (17)
최코딩의 개발노트
사이트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..
사이트 https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 분석 숨박꼭질3 문제랑 굉장히 유사했던 문제였다. 차근차근 알아보자! 일당 최소 이동시간은 구현하는데에 있어서 숨박꼭질3이랑 유사했다. private static void bfs() { Queue queue = new LinkedList(); queue.offer(new int[]{n, 0}); while (!queue.isEmpty()) { int[..
사이트 https://www.acmicpc.net/problem/1522 1522번: 문자열 교환 a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해 www.acmicpc.net 문제 분석 볼모으기 문제랑 비슷했다. 볼모으기 문제는 엄청 쉽게 풀었는데 이 문제는 슬라이딩 윈도우 알고리즘이라고 한다. 즉 문자열의 끝이 처음과 다시 이어지는 원형 구조 인거다 뭔가 쉽고 빨리 풀 수 있을거 같았는데 고정관념이 사로잡혔다. 볼모으기 문제처럼 알파벳 갯수 최소를 찾으면 될줄 알았으나 생각해야 될게 많고 도저히 안풀렸다. 실버1인데 골드푸는 기분.... 그래서 생각한 알고리즘은 ..
사이트 https://www.acmicpc.net/problem/20310 20310번: 타노스 어느 날, 타노스는 0과 1로 이루어진 문자열 $S$를 보았다. 신기하게도, $S$가 포함하는 0의 개수와 $S$가 포함하는 1의 개수는 모두 짝수라고 한다. 갑자기 심술이 난 타노스는 $S$를 구성하는 문자 www.acmicpc.net 문제 분석 실버3 문제여서 굉장히 얕본 문제였지만 의외로 어렵게 푼 문제였다... 필자는 문자열 알고리즘이 너무 약한거 같다. 자 이제 분석을 들어가보자! 처음 생각 필자의 처음생각은 간단했다! 그냥 1하고 0 갯수 샌 다음에 바로 절반으로 나누고 문제가 요구한게 사전순이므로 그냥 0부터 쭉 갯수 대로 나열하면 될거라고 생각했다. 너무 간단하고 이게 실버문제인가... 의심을 ..