본문 바로가기

Algorithm judge/Backjoon

(14)
[백준 5397번] 키로거 JAVA 풀이 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L의 길이 ≤ 1,000,000) 강산이가 백스페이 www.acmicpc.net 5397번을 풀기 전, 가장 도움되었던 문제는 BOJ의 에디터 문제였던거 같다. 이번 문제 풀이는 Stack을 두 개 사용했다. 1. 를 만날 경우 왼쪽 스택에서 오른쪽 스택으로 pop( ) & push( ) 3. 스택이 비어 있을 경우 각 1, 2번에 해당하는 작업은 하지 않음 4. 기본적으로 오른쪽 스택에 데이터를 추가함 5. 모든 문자열에 접근한 뒤, 오른쪽 스..
[백준 10818번] 최소값, 최대값 구하기 : JAVA 문제 과거 풀이와 비교 과거 풀이 금일 풀이 응답 속도와 코드는 많이 줄였으나, 출력부분에서 더 빠른 응답을 처리하는 기능 사용할 것! ㅠㅠ 더 열심히 하자
[백준 2501번] 약수 구하기 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net 먼저 손 코딩으로 접근했다. 문제 접근법은 아래와 같다. 반복문을 진행하며, i가 n이하일 경우에만 진행한다. 약수를 발견할 경우 카운팅을 한다. 만약 카운팅한 수가 k와 동일할 경우 해당 수를 출력하고 메서드를 종료한다. 약수가 존재하지 않을 경우 return에 접근하지 않기에 맨 아래에 0을 넣어 출력한다. Scanner가 아닌 BufferedReader를 사용해 처리 속도를 더욱 빠르게 하였다. 마지막에 close( )를 안해주었지만 조건 만족 후 return으로 메서드를 종료하는데, close( )가 유의미한지 학습할 필요가 있..
[백준 1874번] 스택 수열 ( JAVA ) 문제 1부터 n까지의 수가 존재할때, 입력된 수열을 만들기 위한 push와 pop을 순서대로 출력하는 것 즉, 1부터 n까지 숫자가 증가하다가 수열의 수와 일치하는 수가 발생할 경우 해당 수까지 push한 후 pop을 해야함. ( 글로 설명하려니 어렵네 ㅠ ) 아무튼 그럼.. 문제 접근 1부터 n까지 증가하는 과정에서 수열과 일치하는 수가 발생할 경우, 해당 수까지만 Push를 한 뒤, 입력 수와 pop한 값이 동일하다면 " + " 출력 입력 수와 pop한 값이 동일하지 않다면 "NO" 출력 후 return하여 메서드 종료 stack에 아무런 데이터가 존재하지 않다면 함수 종료 코드 결과 지금까지 코드 길이가 길어도 시간은 짧게 나오는 편이었는데 이번에는 코드도 길도 시간도 길게 나왔다 😂 타인 풀이를 ..
[2292번] 백준 벌집 문제 - 자바 문제 접근 초기 문제 접근 최단거리라 하여 BFS [ 넓이 우선 탐색 ]법을 이용해 접근했다. 출력 값에 오류는 없었으나, 메모리 초과로 에러가 발생하였다 ㅠㅠ 타인 문제 풀이 결국 4시간 만에 참조한 타인의 풀이를 보니 숫자의 범위를 풀이에 활용하더라! 세삼 똑똑하신 분들 너무 많다 ㅠㅠ 나의 풀이 우선 BFS로 접근해야 하기에, Queue 자료구조를 이용했다. [ 최소거리라 하여 무조건 범위 탐색으로 접근해야 한다고 생각했다 😅 ] 숫자를 담는 [ number_que ]와 각 number당 count 수를 담는 [ count_que ]와 해당 범위에 접근하는 증가값을 담은 [ increase_que ]를 활용했다. 무한반복문으로 접근하며 만약 찾고자 한 값과 number_que로 poll( )한 값이..
[1316번] 백준 그룹 단어 체커 - 자바 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 문제 해설 ccbbdd는 각 문자가 연속하여 나타나기에 이는 하나의 '그룹 단어'이다. 만약 입력되는 단어가 3개라 하였을 때, apple banana carot apple과 carot은 각 문자들이 연속하여 나타나 그룹단어이나, banana는 a가 단어 내에서 연속해서 나타나지 않아 이는 그룹단어가 아니다. 고로..