티스토리

챰로그
검색하기

블로그 홈

챰로그

ciaom.tistory.com/m

행복한 개발 노예 인생

구독자
4
방명록 방문하기

주요 글 목록

  • 백준 1202 보석 도둑 오랜만의 알고리즘 문제 풀이를 들고 돌아왔다. 결론적으로 말하면, 나 혼자 스스로 생각해 풀기로는 실패한 문제다 ;-;다만 접근 방법을 알고 난 이후에 왜 난 이 방식을 생각 못했을까. 내가 생각한 방식의 순서만 바꿔도 훨씬 쉽게 접근할 수 있었는데..라는 생각이 들었다.그래서 이건 기록해야한다! 라는 마음에 오랜만에 백준 문제를 블로그에 작성해 본다.  위 문제는 설명은 간단한 문제다.세계적인 도둑 상덕이가 보석을 터는데, 각 C의 무게만큼을 담을 수 있는 가방 N개를 가지고 있다.가방 1개당 1개의 보석밖에 넣지 못하고, 각 보석은 무게와 가격이 주어진다. 그래서 훔칠 수 있는 보석의 가장 큰 가격을 출력하는 방식이다. 오류 가장 처음 접근한 방식은 우선순위 큐 + 이진탐색을 이용한 풀이법이었다.보석.. 공감수 1 댓글수 0 2025. 3. 20.
  • 백준 9935 문자열 폭발 백준 9935번 문자열 폭발문제의 설명은 간단하다.문자열과 폭발 문자열 두 가지가 주어진다.이때 문자열 안에 폭발 문자열이 하나라도 포함되면 문자열에 있는 모든 폭발 문자열이 폭파하고, 남은 문자열들이 모여 새로운 문자열을 만든다.이때 새로운 문자열 안에 폭발 문자열이 생길 수 있다. 문자열에 폭발 문자열이 없을 때까지 반복하고, 남은 문자열을 출력한다.만약 남은 문자열이 없다면 "FRULA"를 출력한다. 시도 1번 - 실패 (메모리 초과)안될걸 알았지만, replaceAII을 이용해서 시도해 보았다.public class Main { public static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); p.. 공감수 1 댓글수 1 2025. 2. 7.
  • 백준 17136 색종이 붙이기 색종이 붙이기. 1x1, 2x2, 3x3, 4x4, 5x5 크기의 색종이가 각각 5장씩 있으며 이것들을 최소한으로 사용해서 10x10 크기의 종이에서 1로 표기된 부분을 덮는 횟수를 구하는 것이 목적인 문제이다.단, 1로 되어있는 곳만 덮고 0 값을 가진 곳은 덮으면 안 된다. 아마 거진 반 개월 전에 시도했던 문제인데 그때 실패하고 포기했던 문제이다. -실패했지만 도전한 문제 리스트에서 찾았다- 정말 웃긴 건, 사람의 사고방식은 쉽게 변하지 않나 보다. 이번에도 또 시간초과와 틀렸습니다가 번갈아 떴는데, 틀렸습니다가 뜬 코드랑 과거에 내가 틀렸었던 문제랑 똑같이 풀었다..ㅋㅋ싸피 강사님이었던 홍박사님의 가르침을 꾸준히 이어받아현재까지도 알고리즘을 풀 때 가장 위에 주석을 달아 생각한 풀이 방식을 적어두.. 공감수 2 댓글수 1 2025. 1. 24.
  • 백준 2206 벽 부수고 이동하기 오늘의 문제는 간단한듯 보이지만 놓칠 수 있는 구멍이 많았던 문제였다.난 이 문제를 총 2번 틀렸는데, 실제 코테였다면 틀린 점을 찾지 못하고 풀었다며 희희낙락하고 있었을 것 같다. 반성하자... 문제를 읽어보면 (1,1)에서 시작해서 (N,M)에 도달하기까지의 최종 거리를 구하는 문제다.단, 조건이 2개가 있는데1. '0'은 지나갈 수 있는 공간. '1'은 벽으로 막힌 공간이라 지나갈 수 없다.2. 다만 벽으로 막힌 공간은 단 '한 번'. 벽을 부수고 지나갈 수 있다. 이러한 조건 2개가 붙어있다. 아마 깊이, 너비 우선 탐색을 어느정도 풀어봤다면 단번에 느낌이 좀 올거다. 다만 나는 시간 초과를 구하는 방법을 아직까지도...ㅎㅎ....감을 잡지 못했기때문에 가장 먼저 무지성 깊이 우선 탐색을 선택했다.. 공감수 2 댓글수 0 2025. 1. 19.
  • 백준 1238 파티 이번에 푼 알고리즘은 전형적인 다익스트라 알고리즘 문제였다.N개의 마을에 각각 1명의 학생이 거주하고, 각 마을은 M개의 단방향 도로로 이루어져있다.이때 K마을에 이 학생들이 모였다 다시 집으로 돌아가기로 했는데, 학생들은 최단시간 경로만 찾아 K마을로 이동한다. 이때, K마을에 들렸다가 다시 본인의 집으로 온 학생들 중에서 최다시간인 학생을 찾아 그 시간을 출력하는 게 이번 문제의 목표였다. 다익스트라 알고리즘을 풀 수 있다면 쉽게 해결할 수 있는 문제지만, 나는 다익스트라를 정말 오랜만에 풀어보기 때문에 조금 시간이 걸렸다.. 심지어 다익스트라 알고리즘이 어떻게 돌아가는 지 생각나지 않아 구글링도 했기 때문에 이후에 다익스트라 문제를 다시 한 번 풀어봐야 겠다. 다익스트라는 간단하게 말하면, 현실에서.. 공감수 1 댓글수 1 2025. 1. 17.
  • 백준 15989 1,2,3 더하기 4 조금 눈물나지만ㅜㅡ 결론은 다른 분들의 풀이를 참고해서 문제를 해결했다.아직 내게 DP란 멀고도 먼 목표인 것 같다..너무 어렵다.으레 DP 문제들이 그렇듯이, 이 문제도 해결 방법만 알면 구현은 어렵지 않은 문제였다.하지만 1,2,3 더하기 시리즈 문제가 있어 다른 분들의 풀이를 보면 그것에서 변형해서 푼 분들이 많았는데 난 이전 문제를 풀어보지 않았으므로 그런 풀이는 패스 하고 그냥 내가 알아들을 수 있는 풀이를 참고했다.  이 문제를 풀면서 생각해야 할 것은 단 두 가지다. 1. 중복 값을 어떻게 처리할 것인가?2. 이전 값에서 변경되는 점은 무엇인가? 1번 부터 살펴보자. 처음 풀이를 보기 전 생각한 것은 당연하게도 HashSet이었다. 당연히 중복 제거 하면 떠오르는 그 방법을 쓸 까 고민을 했.. 공감수 0 댓글수 0 2025. 1. 13.
  • 백준 1081 합 문제는 간단하다.두 정수 L과 U가 주어지고, L 이상 U이하인 모든 정수의 각 자리의 합을 구하면 된다. 다만 문제를 푸는 알고리즘을 생각하기까지의 과정은 간단하지 않았다.ㅜㅜ첫번째로 생각했던 과정은 다음과 같다. 일단 0-9까지의 합이 45이고, 10, 100, 1000처럼 10의 제곱근 단위로 나누어 이를 이용해야 한다는 생각까진 들었다.다만 이걸 어떻게 이용해야하나? 하는 고민이 많았다.예시로 1129와 2712의 정수가 주어졌다고 가정해보자. 제일 앞자리 1은 뒤에 있는 숫자의 개수만큼 나오는 개수가 달라질거고, 그건 각 자리가 마찬가지다.두 정수의 차를 구해서 서로에게 영향이 없는 (eg. 102와 493일때 200-400까지는 영향이 없는 것을 의미) 수를 구해서 그만큼은 정해진 값을 더하고.. 공감수 0 댓글수 0 2025. 1. 9.
  • 백준 1931 회의실 배정 백준 1931 회의실 배정  간단한 그리디 알고리즘 문제다.그러나 한번에 정답을 맞추진 못했다ㅜㅜ 한번에 맞출 수 있도록 기록하고 다음에는 이런 실수 없도록 하자 문제를 읽어보면 어떤 식으로 풀어야 할지 바로 느낌이 오는 문제다.하나의 회의실에서 여러개의 회의를 진행하는데, 하나의 회의가 진행되는 동안 다른 회의는 진행이 불가능하다.단, 끝나는 시간과 동일하게 시작하는 회의는 진행이 가능하다. 이 점을 유의하면서 최대한 많이 회의를 할 수 있도록 하여 진행되는 회의의 최대 개수를 구하면 되는 코드다.  가장 먼저 제출했던 코드는 다음과 같다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;i.. 공감수 0 댓글수 0 2025. 1. 9.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.