본문 바로가기

코딩테스트26

[백준 9935/자바] 문자열 폭발 https://www.acmicpc.net/problem/9935  문자열의 최대길이가 100만이기 때문에 문자열 메소드 replaceAll을 사용하면 메모리초과가 발생한다고 한다... ✨ 참고https://loosie.tistory.com/317  풀이스택 사용 스택에 입력받은 문자열을 한 글자씩 집어넣음스택의 크기가 폭발 문자열의 길이와 같거나 길이보다 클 경우 폭발 문자열이 포함 돼있는지 확인스택의 최상단에서 폭발 문자열 길이까지만 get 함수를 이용해 앞에서부터 차례대로 확인한다만약 폭발 문자열이 포함 돼있으면 그 길이만큼 pop 수행 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader.. 2024. 7. 3.
[백준 2606/자바] 바이러스 https://www.acmicpc.net/problem/2606  BFS에 익숙해져보려고 계속 하는데 익숙해지지가 않음더 공부해야 할 듯 ✨ 참고인접 리스트 - https://ko.wikipedia.org/wiki/%EC%9D%B8%EC%A0%91_%EB%A6%AC%EC%8A%A4%ED%8A%B8풀이BFS 및 인접 리스트 사용  📌 인접 리스트그래프 이론에서 그래프를 표현하기 위한 방법 중 하나그래프의 한 꼭짓점에서 연결되어 있는 꼭짓점들을 하나의 연결 리스트로 표현하는 방법인접 행렬에 비하여 변이 희소한 그래프에 효율적이다. 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import.. 2024. 7. 3.
[백준 1926/자바] 그림 https://www.acmicpc.net/problem/1926    BFS 공부✨ 참고https://velog.io/@minjoott_dev/%EB%B0%B1%EC%A4%80-1926%EB%B2%88-%EA%B7%B8%EB%A6%BC-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-java  풀이BFS를 이용하여 한 점에서 시작되는 그림의 넓이 파악그림의 경계선 마주할 때까지 함수는 끝나지 않음그림 정보 저장할 2차원 boolean 배열방문 여부를 체크할 2차원 boolean 배열BFS 실행 시 사용할 queue이중 for문을 이용하여 x, y값을 확인한 뒤,해당 좌표가 도화지에서 색칠된 부분이고 아직 방문하지 않은 위치인 경우 BFS 실행 BFS 함수좌표에 방문 표시를 한 뒤 qu.. 2024. 6. 27.
[백준 1012/자바] 유기농 배추 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 진짜 푸는 데 오래 걸렸음... 나한테 생소한 개념들이라 이번에 이거 찾아보면서 공부 많이 한 것 같다 더해야됨 아래 참고한 블로그에 설명이 너무 잘 되어있어서 도움 많이 받았다 ✨ 참고 https://lotuus.tistory.com/98 풀이 인접한 배추를 찾아 탐색해야 하므로 DFS 사용 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이므로 dx, dy를 사용 배추의 경우 0.. 2024. 3. 19.
[백준 15649/Java] N과 M(1) https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아직 백트래킹이 뭔지 잘 모르겠다. 개념은 이해했는데 이걸 코드로 어떻게 짜지 공부를 더 해야겠음 ✨ 참고 https://80000coding.oopy.io/85650ea5-e541-4b12-9b86-a958a99b7533 📌 백트래킹 한정 조건에서의 모든 경우의 수를 확인함. 해를 찾는 도중 그 경로가 해가 아닐 것 같으면 되돌아감 DFS 사용 풀이 위와 같이 각 수가 중복되지 않는 모든 경우.. 2024. 3. 11.
[백준 20920/Java] 영단어 암기는 괴로워 https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 방법이 생각나긴 했는데... 너무 오래 걸릴 것 같아서 다른 방법은 없을까 한참 고민했다. 그래도 일단 작성해서 돌려보긴 했는데 통과는 됐으나 역시 다른 사람들에 비해서 시간이 더 오래 걸림. 그래서 찾아보니 빈도수와 길이, 알파벳순 정렬을 굳이 따로 할 필요가 없었다. (난 따로 했음) ✨ 참고 https://propercodi.. 2024. 3. 10.
[백준 1003/Java] 피보나치 함수 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 처음엔 단순하게 문제에서 주어진 피보나치 함수 긁어다가 0과 1 나올 때마다 관련 변수 1씩 증가시켜서 값을 구했는데 아니나다를까 시간 초과 남 근데 정리하다보니 예전에 풀었던 문제랑 비슷한 거 같아서 같은 풀이 사용하니 통과 됐다 아파트의 각 집마다 거주하는 사람 수 구하는 문제였던 거 같은데 몇 번인진 까먹었음 풀이 피보나치 수는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. 문제를 좀 더 직관적으로 이해하기 위해 0번째 수도 수열에 포함하면 아래와 같음 .. 2023. 10. 17.
[백준 1874/Java] 스택 수열 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 스택, 큐 사용해서 풀었는데 돌려보니 틀렸다고 뜸 근데 질문 게시판 확인하니 아래 같은 글이 있었다 글 내용대로 == 대신 equals() 함수 사용하니 통과 됐음 📌 -128~127의 범위를 벗어나는 값을 가진 Integer 객체를 == 연산자를 사용해 비교할 경우 예상과 다르게 동작한다고 한다. 📝 참고 http.. 2023. 10. 11.
[백준 7785/Java] 회사에 있는 사람 https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 무난하게 통과한 문제인데 다른 방법을 쓰면 시간을 줄일 수 있지 않을까 싶어 시도해봤다가 오히려 시간 초과가 남 찾아보니 배열 별로 연산 시간이 달라서 이렇게 된 듯 통과한 풀이는 HashMap을 사용했었고 시간 초과난 풀이는 ArrayList를 사용했었다 📝 참고 https://www.grepiu.com/post/9 https://lifeofyoori.ti.. 2023. 10. 9.