백준 9097 동전게임 풀이 (feat. JAVA)
·
CS & Algorithm/Algorithm
이거는... 비트마스킹을 좀 자유자재로 다뤄야 이렇게 생각해서 풀 수 있지 않나.. 라는 생각을 했다진짜 너무 헷갈리고 쉽지 않은 문제였음... ㅠ어쩌면 2진수로 바꿔서 생각하는걸 너무 복잡하게 생각하는지도 모르겠다이 역시도 많이 풀어봐야할.. 문제인 것 같다/*[백준]9097, 동전게임[문제파악]상우는 재미있는 게임을 생각해냈다.동전 9개를 아래 그림과 같이 3행 3열로 놓는다.H는 앞면, T는 뒷면을 의미한다.H T TH T TT H H게임의 목적은 이 동전의 모양을 모두 같은 면(H나 T)이 보이도록 하는 것이다.단, 하나의 동전만을 뒤집을 수는 없고, 한 행의 모든 동전, 한 열의 모든 동전 또는 하나의 대각선 상의 모든 동전을 한 번에 뒤집어야 한다.그런 식으로 세 개의 동전을 뒤집는 것을 '한..
백준 16508 전공책 풀이 (feat. JAVA)
·
CS & Algorithm/Algorithm
이게... 비트마스킹으로 조합을 하겠다고 생각을 도출하는게 너무 어려웠다그냥 진짜 조합식 일일이 짜는 방식밖에 생각이 안났음 (근데 너무 비효율적이잖아;; 이 또한 죄다 하나 같이 안해봤으니까 모르는 것이겠죠풀 유형은 많습니다 ㅠ 급한 일 끝났으니 다시 꾸준히 합시다/*[백준]16508, 전공책[문제파악]곧 졸업을 앞둔 민호는 대학교 생활 동안 구매만 해놓고 한 번도 펴보지 않은 전공책에 먼지가 쌓여 있는 것을 보고는, 이 책들을 어떻게 처리해야 할지 고민 중이다.열심히 고민한 끝에 민호는 결국 전공책을 모두 버리기로 마음먹었다.하지만 그냥 버리기엔 심심한 민호는 전공책 제목에 있는 글자들을 오려서 단어 만들기 놀이를 하려고 한다.단어 만들기 놀이는 아래 예시와 같다.1번 책 : COMPUTERARCHI..
백준 17419 비트가 넘쳐흘러 풀이 (feat. JAVA)
·
CS & Algorithm/Algorithm
비트... 연산... 어렵다잉?2진수를 이렇게 또 다시 마주할 줄이야package Record_2025;/*[백준][문제파악]DJ욱제는 비트에 심취한 나머지, 비트를 비틀어 제껴버리는 문제를 내 버렸다!N자리 이진수 K가 주어진다.K가 0이 아닐 때까지 아래의 연산을 적용했을 때, 연산이 일어나는 횟수를 구하시오.K = K-(K&((~K)+1))아래는 위의 연산에 사용된 연산자에 대한 설명이다.'+'는 산술 더하기 연산이다. (5 + 2 = 7)'-'는 산술 빼기 연산이다. (5 - 2 = 3)'&'는 비트 AND 연산이다. (1101 & 0111 = 0101)'~'는 비트 NOT 연산이다. 켜진 비트를 끄고, 꺼진 비트를 켜는 연산이다. (~1101 = 0010)[입력]첫째 줄에 N이 주어진다.둘째 줄..
백준 2885 초콜릿 식사 풀이 (feat. JAVA)
·
CS & Algorithm/Algorithm
비트마스킹 친해지기 어렵다...어떻게 써먹어야할지 쓰면서도 헷갈림더 자주 풀어서 더 친해져야지 뭐 ㅠpackage Record_2025;/*[백준]2885, 초콜릿 식사[문제파악]- 학교 근처 편의점에 새 초콜릿이 들어왔다.- 이 초콜릿은 막대 모양이고, 각 막대는 정사각형 N개로 이루어져 있다.- 초콜릿의 크기(정사각형의 개수)는 항상 2의 제곱 형태이다.- 즉, 1, 2, 4, 8, 16, ...개의 정사각형으로 이루어져 있다.- 상근이는 점심식사로 초콜릿을 먹는다.- 이때, 적어도 K개 정사각형을 먹어야 남은 수업을 졸지 않고 버틸 수 있다.- 상근이의 친구 선영이도 초콜릿을 좋아한다.- 선영이는 초콜릿은 돈을 주고 사기 아깝다고 생각하기 때문에, 상근이가 주는 초콜릿만 먹는다.- 상근이는 막대 초..
백준 17182 우주 탐사선 풀이 (feat. JAVA)
·
CS & Algorithm/Algorithm
어렵다...언제쯤 골드 문제들은 답 참고 안하고 슈슈슉 다 풀어버릴 수 있을지요즘은 비트마스킹 문제에 익숙해지고자 이것만 풀고 있는데 쉽지 않다원리만 이해하고 문제에 적용하기 어려운게 확실히 알고리즘은 수학 문제 푸는 것과 똑같은 것 같다계속 풀면 언젠간 되긴 하긴하더만 ㅇㅅㅇ.. 아무튼 오늘은 비트마스킹 문제긴한데 여러가지를 다 조합해서 써야하는 문제다플로이드-워셜 + DFS + 비트마스킹 조합임...이 극악무도한 것...package Record_2025;/*[백준]17182, 우주 탐사선[문제파악]- 우주 탐사선 ana호는 어떤 행성계를 탐사하기 위해 발사된다.- 모든 행성을 탐사하는데 걸리는 최소 시간을 계산하려 한다.- 입력으로는 ana호가 탐색할 행성의 개수와 ana호가 발사되는 행성의 위치와..
백준 2014 소수의 곱 풀이 (feat. JAVA & C#)
·
CS & Algorithm/Algorithm
골드 상위권 문제는 늘 이런 식이다...쉬운듯 하면서 함정을 파놓지이 문제는 PQ문제다근데 곱셈의 중복처리를 해줘야하니까? HashSet도 필요하고...2 x 3과 3 x 2는 같으니까? 미리 가지치기(예외처리)도 필요한...그런 몹쓸 문제 되시겠다 아래는 내가 제일 헷갈렸던 포인트를 줄줄줄 설명하듯 적어놨음더보기이게 뭐냐고! 대체 뭐냐고!! // 중복 제거: 오름차순 생성만 허용if (curr % nums[j] == 0) break;뭘까 진짜... 수십번을 생각했더랬다근데 도저히 모르겠음이 날은 도저히 모르겠음을 인정하고 하루 방치해뒀다실제로 더 이상 머리가 굴러가지 않는 문제는?하루를 냅두고 숙성시켰다가 다음날 꺼내보면 무의식이 이해를 해두는 경우도 종종 있다- 의사쌤 유튭채널 오피셜 말씀이었음 아무..
백준 1976 여행 가자 풀이 (feat. JAVA)
·
CS & Algorithm/Algorithm
Union-Find 문제예전에, 1년 전? 이 유형에서 도망가서 그 때 실패했던 문제 오늘 다시 도전했다근데 Union-Find 그 때 공부 안해서 여전히 못 풀더라 ㅋㅋ ㅠ이제는? 도망갈 곳이 없다~대충 방식은 이해했다서로 연결된 친구들은 root에 해당하는 노드를 하나 만든다그리고 서로 연결되어있다 치면, 같은 그룹이다 아니다를 빠르게 체크하기 위해 root(대표 노드) 하나로 모두 연결시킨다그리고 서로 같은 그룹에 있는지를 체크하면 되는 문제!말로는 쉽다 말로는... 이것도 꾸준히 복습하면서 Union-Find를 내 것으로 만들어야 할 듯 ㅠ 구현방법- 연결된 노드들은 같은 그룹으로 묶인다. - 각 노드는 하나의 대표 노드(루트)를 가리킨다. - 두 노드가 연결되어 있는지 빠르게 판단하려면 각 노드..
백준 12919 A와 B 2 풀이 (feat. JAVA)
·
CS & Algorithm/Algorithm
StringBulider의 compareTos는 JAVA 9에서부터 만들어졌다는 것조건 순서를 의심해보면 그리디로 풀 수 없었다는 것두가지를 간과했던 문제package Record_2025;/*[백준]12919, A와 B 2[문제파악]- 수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다.- 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다.- 이런 사실에 놀란 수빈이는 간단한 게임을 만들기로 했다.- 두 문자열 S와 T가 주어졌을 때, S를 T로 바꾸는 게임이다.- 문자열을 바꿀 때는 다음과 같은 두 가지 연산만 가능하다.- 문자열의 뒤에 A를 추가한다.- 문자열의 뒤에 B를 추가하고 문자열을 뒤집는다..
백준 1701 Cubeditor 풀이 (feat. JAVA / 돔황챠)
·
CS & Algorithm/Algorithm
과거의 나는 보아라그래 백번 양보해서 알고리즘 분류 KMP를 보고 '이건 뭐지' 싶어서 도망 안 갔을 수는 있다그래도 KMP 타고 들어가서 문제 난이도 봤을 땐 도망갔었어야지...(여러분도 그때 도망 못 가셨으니까 여기까지 오셨겠죠? ㅋㅋㅋㅋ 하 ㅠㅠ) 너무 어려웠다이건 답을 다봤다봐도 모르겠다심지어 0.5초? 양심있냐? 이걸 코테로 내는 곳은 없겠지이정도 알고리즘은 앞으로 AI가 짜주지 않을까?진짜 뭐하는 알고리즘인지 모르겠다진짜 이걸 내가 나중에 다시 풀까..? 싶긴 하지만 너무 어려웠으니까 공부 차원에서 포스팅해둔다..(코드를 다시봐도 뭐라는거야 싶네..)코드package Record_2025;/*[백준]1701, Cubeditor[문제파악]- Cubelover는 프로그래밍 언어 Whitespace..
백준 1135 뉴스 전하기 풀이 (feat. JAVA)
·
CS & Algorithm/Algorithm
트리에서도 DP가 가능하다니 악랄하다!!! 이거 놓쳤던 부분이자 가장 큰 포인트가 하나 있다전화를 한번에 한명 밖에 못 걸어서, 부하가 가장 많은 직원한테 먼저 걸어야 한다는 것! 즉 이 문제의 요는 루트 노드에서 시작하지만 DFS로 탐색해 들어가면 리프 노드에서 시작하는 셈이다그러면 밑바닥에 있는 가장 마지막 노드들(리프 노드)는 걸린시간이 0이다그러면 이제 리프 노드의 부모 입장에서 자식들이 몇명인지, 한번씩 전화를 돌리면 몇 분이 걸리는지를 체크한다이런 식으로 Bottom-Up으로 탐색해가면 루트 입장에선 각 자식들이 몇 분씩 걸리는지 알 수 있다 다만 여기서 한가지 함정이 있다면 그것은 가장 오래 걸리는 자식부터 계산을 해주어야한다는 것이다전화는 한번에 한명밖에 걸 수 없으니 자식이 많은 가지부터..