728x90
반응형

StringBuilder 7

<백준> 가운데를 말해요(Gold 2) - 재풀이

[백준]https://www.acmicpc.net/problem/1655[깃허브] ForCodeKata/baekjoon 문제집/가운데를 말해요 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com어제부터 다른 백준 문제집을 풀고 있는데 문제 난이도가 골드부터 시작해서 상당히 빡세다.이전에 풀었던 오늘 문제였지만 어떻게 풀었는지 생각이 안나서 한참 걸렸다. 그래서 처음에 시도했던 방식은 우선순위큐를 하나 두고 중간값을 구해야할 때마다 절반씩 꺼내서 저장해놓을 스택을 두는 것이었다.무조건 절반 빼고 거기서 조..

<백준> 가희와 탑(Gold 3)

[백준]https://www.acmicpc.net/problem/24337[깃허브] ForCodeKata/baekjoon 문제집/24337 가희와 탑 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com처음에는 문제를 보고 이전에 풀었던 탑 문제들이랑 비슷하겠구나 하고 더 내려가는데 갑자기 이걸 어떻게 풀어야하지? 라는 문제로 바꼈다.그냥 보이는 건물을 찾는 게 아니라 보이는 건물 개수에 맞춰 그 건물들의 높이 정보를 출력해야했기 때문이다.완전 반대 문제인 것이다. 그래서 스택문제일까 했지만 뭐 넣을 수 ..

<백준> 문자열 폭발(Gold 4)

[백준]https://www.acmicpc.net/problem/9935[깃허브] ForCodeKata/baekjoon 문제집/9935 문자열 폭발 at main · heesoo-park/ForCodeKata알고리즘 문제 코드 저장소. Contribute to heesoo-park/ForCodeKata development by creating an account on GitHub.github.com문제를 보면서 이거는 그냥 앞에서부터 훑으면서 체크한다면 숫자 제한이 1000000이기 때문에 무조건 시간초과가 나온다는 판단이 들었다.그리고 일반 String으로 한다면 메모리도 초과할 거라고 판단했다.그래서 스택이 떠올랐고 그대로 진행했다. 들어오는 문자가 폭발 문자열의 마지막 문자일 때까지 계속 스택에 ..

<백준> A와 B(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/A%EC%99%80%20B [백준] https://www.acmicpc.net/problem/12904 정말 한 번 뒤집어서 생각했더니 순식간에 풀린 문제였다. 처음에 문제를 보면서 드는 생각은 'DFS를 사용해서 두가지 연산을 다 사용하고 같은 길이가 되면 체크하는 방식으로 해야겠다...'였다. 하지만 이렇게 하면 최악의 경우에 1000*1000번도 돌지 않을까 싶더라 물론 시간제한 2초이기 때문에 시간초과는 아니다. 그래도 좀더 짧은 방법이 없을까 고민을 했다. 그러다가 번뜩 보인건 거꾸로 하자는 거였다. 문제는 분명 S에서 T..

<백준> 신기한 소수(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/%EC%8B%A0%EA%B8%B0%ED%95%9C%20%EC%86%8C%EC%88%98 [백준] https://www.acmicpc.net/problem/2023 아주 쉽게 보고 접근했다가 메모리 초과 폭탄을 무지하게 많이 맞은 문제였다.(틀린 코드들은 깃허브에 다 남아있다.) 이 문제를 통해서 백트래킹을 할 때도 어떻게 가지치기를 해야할지 생각해보게 되었고 소수의 특성에 대해서도 좀 더 알게 되었다. 문제를 보고는 바로 2로 시작하는 숫자부터 해야겠다 싶었다. 4자리면 2000, 6자리면 200000 왜냐하면 1은 소수가 아니기 ..

<백준> 암호 만들기(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/%EC%95%94%ED%98%B8%20%EB%A7%8C%EB%93%A4%EA%B8%B0 [백준] https://www.acmicpc.net/problem/1759 정말 제출하고 많이 틀린 문제였다. 혼자 테스트하면서, 제출하고 나서를 합치면 8번...? 접근 자체는 쉽게 떠올랐다. '모음 따로, 자음 따로 개수를 골라서 넣지 말고 일단 총 문자에서 원하는 개수만큼 뽑은 다음에 모음의 개수와 자음의 개수를 확인하자!' 입력은 쉽게 받았고 입력값을 CharArray로 바꿔 바로 받기 위해 filter를 사용해봤다. 그리고 조합 합수를 ..

<백준> AC(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/AC [백준] https://www.acmicpc.net/problem/5430 이 문제 무려 4달 전에 풀었었던 문제다. 하나도 기억이 안 났다. 거기에 자바로 풀었더라 그래서 새로운 마음으로 시작했다. 예외처리는 수행해야하는 함수의 D의 개수와 주어진 숫자의 개수를 비교했다. 문제를 보자마자 생각이 든 건 '이거 삽입 삭제가 좀 많으니까 StringBuilder를 쓰면 좋지 않을까?' 였다. 그래서 이를 기반으로 반복문을 돌려 StringBuilder의 함수들을 사용했다. 그런데 제출하니까 시간초과가 나오더라... 아마도 rev..

반응형