문제 BOJ 15658번 : 연산자 끼워넣기(2) - https://www.acmicpc.net/problem/15658 풀이 > 코드 정리 🤦♀️ 오늘의 삽질리스트 참고 사이트 https://whereisusb.tistory.com/231
BOJ 6588 : 골드바흐의 추측 - https://www.acmicpc.net/problem/6588시간초과 때문에 속썩인 문제. 테스트 케이스가 짝수 정수 n (6 ≤ n ≤ 1000000)이기 때문에, 일반적인 prime number 구하는 식을 세우면
BOJ 10819 : 차이를 최대로 - https://www.acmicpc.net/problem/10819처음에는 정렬을 해야하나 생각했는데 그냥 모든 경우의 수 구해서 최댓값 구하면 되는 문제! 경우의 수 구하는 로직은 DFS 사용했고, 주어진 식의 결과값
BOJ 1934 : 최소공배수 - https://www.acmicpc.net/problem/1934유클리드 호제법을 사용하여 두 자연수 a, b의 최대공약수(GCD)를 구한 뒤, 두 수의 곱을 최대공약수(GCD)로 나누면 최소공배수(LCM)가 된다.유클리드 호
BOJ 1759 : 암호 만들기 - https://www.acmicpc.net/problem/1759C개 중에 L개를 뽑아 만드는 문자열 중에서 1) 사전순이고 2) 모음(a, e, i, o, u) 1개 이상, 자음 2개 이상 조건을 가지는 문자열 리스트를
문제 > BOJ 14226 : 이모티콘 - https://www.acmicpc.net/problem/14226 풀이 화면에 이모티콘이 1개 입력되어 있다. 여기서 행할 수 있는 작업은 3가지. 추가 조건) 복/붙/삭제 3가지 작업을 적절하게 잘 섞어서 S개의
문제 > BOJ 2156 : 포도주 시식 - https://www.acmicpc.net/problem/2156 풀이 와인 3잔을 연속해서 마실 수 없기 때문에 현재 위치에서 OOX, OXO, XOO의 경우 중 어떤 것이 가장 많이 먹을 수 있는 경우인지 판단해가면
문제 > BOJ 3568 : iSharp - https://www.acmicpc.net/problem/3568 풀이 우선 공통 변수형과 개별 변수형을 분리한다. 먼저 ,와 ;를 지워준 뒤, 공백으로 구분되어 있기 때문에 split() 함수를 이용하여 String 배열
BOJ 15662 : 톱니바퀴 (2) - https://www.acmicpc.net/problem/15662문제 : 회전시킬 톱니바퀴 번호와 방향이 주어진다. 해당 톱니바퀴를 회전시킨 후, 왼쪽과 오른쪽 (양 옆)의 톱니바퀴를 본다. 양 옆의 톱니의 극이 다르
문제 > BOJ 1325 : 효율적인 해킹 - https://www.acmicpc.net/problem/1325 풀이 A 컴퓨터가 B 컴퓨터를 신뢰한다면, B를 해킹했을 때 A도 해킹할 수 있다. 그러므로 B의 인접리스트에 A를 저장해서, B 컴퓨터에 방문했을 시
문제 > BOJ 6497 : 전력난 - https://www.acmicpc.net/problem/6497 풀이 전체 가로등 중에서 최소한의 가로등만 켜서 전력을 아껴야하기 때문에, 최소 스패닝트리(MST)를 구해서, 전체 길의 길이 - MST를 구성하는 길의 길이를
문제 > BOJ 1261 : 알고스팟 - https://www.acmicpc.net/problem/1261 풀이 벽을 최소 몇 개 부수어야 하는지를 구해야하기 때문에, 일단 BFS로 가능한 경로를 찾아야겠다고 생각했다. [Queue의 넣는 조건] 해당 위치에 한번
BOJ 13023 : ABCDE - https://www.acmicpc.net/problem/13023친구관계라고 주어지지만, 이 관계를 가지고 그래프에 적용하면 된다. 입력받은 친구 관계를 각각의 인접리스트에 저장한다. <span style="color
BOJ 7576 : 토마토 - https://www.acmicpc.net/problem/7576익은 토마토를 기준으로 주변 안익은 토마토들이 익어간다. 한 위치를 기준으로, 주변 위치들이 영향을 받기 때문에 우선 <span style="color:입력받을
문제 > BOJ 9465 : 스티커 - https://www.acmicpc.net/problem/9465 풀이 뗄 수 있는 스티커의 점수의 최댓값을 구하는 문제. 한 스티커를 떼면 주변에 붙어있는 스티커들은 망가져 사용할 수 없다. 처음엔 점수가 큰 스티커 순서대로
문제 > BOJ 2422 : 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 - https://www.acmicpc.net/problem/2422 풀이 n개의 아이스크림 종류 중에 3종류를 뽑는다. 일단 2개를 뽑은 뒤 그 2개가 어울리지 않는 조합인지 확인한다.
문제 > BOJ 10971 : 외판원 순회 2 - https://www.acmicpc.net/problem/10971 풀이 Traveling Salesman problem(TSP), 외판원 순회의 기본적인 문제이다. DFS로 풀이하면 되는 문제! 모든 지점을 방문하
Programmers : 완주하지 못한 선수 - https://programmers.co.kr/learn/courses/30/lessons/42576단 한명의 선수를 제외하고 모두 마라톤을 완주했기 때문에, 그 '한명'만 구하면 되는 문제!전체 선수 목록과
Programmers : 위장 - https://programmers.co.kr/learn/courses/30/lessons/42578옷 조합의 경우의 수를 나열하는 것이 아니라 <span style="color:예를 들어 상의가 2개, 하의가 3개 있
프로그래머스>코딩테스트 연습>고득점 Kit>해시 : 베스트앨범 - https://programmers.co.kr/learn/courses/30/lessons/42579다음과 같은 조건을 만족해서 베스트 앨범을 만들어야한다.이 조건을 만족하기 위해서는,첫번째,
문제 > 프로그래머스>코딩테스트 연습>고득점 Kit>스택/큐 : 기능개발 - https://programmers.co.kr/learn/courses/30/lessons/42586 풀이 코드 정리 🤦♀️ 메모 참고 사이트 딱히 없음
문제 > 프로그래머스>코딩테스트 연습>고득점 Kit>스택/큐 : 프린터 - https://programmers.co.kr/learn/courses/30/lessons/42587 풀이 코드 정리 🤦♀️ 메모 참고 사이트 딱히 없음
BOJ 1647 : 도시 분할 계획 - https://www.acmicpc.net/problem/1647문제를 이해하기가 좀 어려웠는데, 가장 적은 비용으로 두 마을로 나누는 문제이다.MST(최소 스패닝 트리)를 구한 후 <span style="color
BOJ 1495 : 기타리스트 - https://www.acmicpc.net/problem/1495N개의 곡 연주하는데, 볼륨의 선택지는 2가지이다. 기존 볼륨+V\[i]와 기존볼륨-V\[i]. 처음엔 재귀 호출로 풀이하려고 생각했는데 N이 최대 100이기 때
BOJ 11048 : 이동하기 - https://www.acmicpc.net/problem/11048BFS로 풀이할 수 있을 줄 알았는데 DP로 풀이해야 한다. BFS는 시간초과가 난다.준규가 이동할 수 있는 경로는 오른쪽, 아래, 오른쪽아래 대각선이다. 그렇
BOJ 2667 : 단지번호붙이기 - https://www.acmicpc.net/problem/2667모든 칸을 확인하는데, 집이 있으나 단지 번호가 아직 부여되지 않은 경우(==값은 1이고 visited되지 않은 경우) BFS탐색으로 인접한 집들에 단지 번호
BOJ 16918 : 봄버맨 - https://www.acmicpc.net/problem/16918문제 이해부터 난관이었는데, 내가 이해한 바는 이렇다.위와 같은 규칙(?)이 있었다. 1초동안은 아무것도 안한다, 3초 후에 터진다 이런 조건들이 왜 있나 했더니
BOJ 2933 : 미네랄 - https://www.acmicpc.net/problem/2933전체적으로 봤을 때, 이루어지는 작업들은 다음과 같다.주어진 높이와 방향의 미네랄 파괴파괴된 시점에서 클러스터 중 공중에 떠있는 게 있는지 확인있으면 내릴 수 있을
문제 > BOJ 1764 : 듣보잡 - https://www.acmicpc.net/problem/1764 풀이 듣도 못한 사람의 수를 set에다 저장한 뒤, 보도 못한 사람이 그 set에 들어있는지를 확인해서 들어있다면 출력한다. ArrayList로 contains
BOJ 1620 : 나는야 포켓몬 마스터 이다솜 - https://www.acmicpc.net/problem/1620입력으로 주어지는 포켓몬 정보를 잘 저장해두고, 입력으로 숫자가 들어왔다면 그 숫자에 해당하는 포켓몬의 이름을, 문자가 들어왔으면 그 포켓몬의
BOJ 1012 : 유기농 배추 - https://www.acmicpc.net/problem/1012유기농 배추가 모여있는 묶음(?)의 개수를 카운트하면 된다. 이중 for문으로 각 위치를 보며 1인 경우(배추가 있는 경우) BFS로 주변에 붙어있는 배추가 있
문제 > BOJ 1074 : Z - https://www.acmicpc.net/problem/1074 풀이 딱 봤을 때 재귀로 풀이하면 되겠다! 했는데 바로 메모리 초과가 나버렸다. 이유를 분석해보니, n이 15이기 때문에 최대 2^15의 row와 col이 생길 수
BOJ 14938 : 서강그라운드 - https://www.acmicpc.net/problem/14938각 지역에서 모든 지역까지 갈 수 있는 최소 경로를 모두 구하면 된다. 즉, 모든 정점에서 모든 정점까지의 최소 경로를 구해야 한다.두 가지 방법이 있다.
BOJ 1916 : 최소비용 구하기 - https://www.acmicpc.net/problem/1916A번째 도시에서 B번째 도시까지 가는데 드는 버스 비용을 최소화 시키는게 목적이기 때문에 A가 출발지가 되는 Dijkstra Algorithm을 사용하면 된
BOJ 2638 : 치즈 - https://www.acmicpc.net/problem/2638외부 공기와 내부 공기를 어떻게 판단해야 할 지 고민을 많이 했던 문제다. 외부공기는 (0,0)위치부터 BFS로 탐색하면 구할 수 있다. 스터디원들이랑 얘기해보니 DF
BOJ 12865 : 평범한 배낭 - https://www.acmicpc.net/problem/12865DP문제로 유명한 배낭 알고리즘(Knapsack algorithm)으로 풀이하는 문제이다. 무게가 0일때, 1일때, 2일때, ... k일때까지 1번 item
문제 > BOJ 1043 : 거짓말 - https://www.acmicpc.net/problem/1043 풀이 input을 받으면서부터 엄청 헷갈렸던 문제다. n과 m이 주어진 뒤, 진실을 알고있는 사람 정보가 주어지고, 각 파티별 참석자 정보가 주어진다. 진실을
BOJ 1167 : 트리의 지름 - https://www.acmicpc.net/problem/1167우선 입력으로 주어지는 연결관계를 그래프 형태로 나타낸 뒤 <span style="color:도착 노드와 거리를 저장할 수 있도록 Edge class를 만
BOJ 11725 : 트리의 부모 찾기 - https://www.acmicpc.net/problem/11725문제를 딱 처음 읽고는 뭘 하라는 건지 잘 이해가 안됐는데, 그냥 연관 관계 그래프 그린 후에 부모 노드를 찾으면 된다. root노드(=1번 노드)부터
BOJ 2407 : 조합 - https://www.acmicpc.net/problem/2407단순의 조합의 개수를 구하는 문제이지만, n의 범위가 최대 100이기 때문에 100!을 하게 되면 숫자가 아주아주 커지게 된다. int로는 택도 없고, long으로도
BOJ 2206 : 벽 부수고 이동하기 - https://www.acmicpc.net/problem/2206상하좌우를 확인해서 <span style="color:- 한번도 벽을 부순적이 없다면 -> 벽을 부수고 이동한다.한번이라도 벽을 부순적이 있으면 -
BOJ 2579 : 계단 오르기 - https://www.acmicpc.net/problem/2579조건계단은 한 번에 한 계단, 두 계단씩만 오를 수 있다연속된 3개의 계단을 밟으면 안된다위 조건을 잘 보고 점화식을 세우면 된다. n의 위치에서 다음과 같은
BOJ 13549 : 숨바꼭질 3 - https://www.acmicpc.net/problem/13549저번에 풀어봤던 숨바꼭질 문제에서 순간이동의 time 조건만 바뀐 문제였다. BFS로 풀이하는데, 3가지 경우 모두 time이 1만큼 증가되는 경우는 단순히
BOJ 17070 : 파이프 옮기기 1 - https://www.acmicpc.net/problem/17070DP로도 풀이할 수 있는 것 같은데, 그냥 BFS로 풀이했다.조건현재 방향이 가로일때가로로 간다대각선으로 간다현재 방향이 세로일 때세로로 간다대각선으로
BOJ 17069 : 파이프 옮기기 2 - https://www.acmicpc.net/problem/17069파이프 옮기기 1에서는 N의 범위가 (3 ≤ N ≤ 16)이어서 BFS로 풀이해도 됐는데, 2에서는 N의 범위가 (3 ≤ N ≤ 32)이어서 시간초과가
BOJ 1918 : 후위 표기식 - https://www.acmicpc.net/problem/1918stack 자료구조를 사용해서 풀이하는 문제이다. 여기서 핵심은, 스택에는 연산자만 사용하고, 피연산자는 바로바로 출력한다! 라는 것.연산자의 우선 순위를 지정
프로그래머스>코딩테스트 연습>2021 카카오 채용연계형 인턴십>숫자 문자열과 영단어 - https://programmers.co.kr/learn/courses/30/lessons/81301문자열을 숫자로 바꿔서 리턴해야하는 문제이다.우선 문자열에 매칭되는 숫자
프로그래머스>코딩테스트 연습>2021 카카오 채용연계형 인턴십>거리두기 확인하기 - https://programmers.co.kr/learn/courses/30/lessons/81302처음 문제를 보고 까다롭다고 생각했었는데, 막상 풀어보니 별거 아닌 문제다.
프로그래머스>코딩테스트 연습>2019 KAKAO BLIND RECRUITMENT>오픈채팅방https://programmers.co.kr/learn/courses/30/lessons/42888채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다.그러므로
프로그래머스>코딩테스트 연습>2019 KAKAO BLIND RECRUITMENT>실패율 - https://programmers.co.kr/learn/courses/30/lessons/42889실패율이 큰 stage 순서대로 출력하는 문제이다.실패율 = 스테이지
프로그래머스>코딩테스트 연습>2019 KAKAO BLIND RECRUITMENT>후보키 - https://programmers.co.kr/learn/courses/30/lessons/42890후보키의 개념을 정확하게 이해하고 있지 않아서 헤맸던 문제이다.일단
프로그래머스>코딩테스트 연습>2018 KAKAO BLIND RECRUITMENT>1차 캐시 - https://programmers.co.kr/learn/courses/30/lessons/42890LRU 방식으로 캐시 크기에 따른 실행시간을 측정하는 문제이다.
프로그래머스>코딩테스트 연습>2018 KAKAO BLIND RECRUITMENT>3차 n진수 게임 - https://programmers.co.kr/learn/courses/30/lessons/17687LRU 방식으로 캐시 크기에 따른 실행시간을 측정하는 문제
프로그래머스>코딩테스트 연습>2018 KAKAO BLIND RECRUITMENT>3차 파일명 정렬 - https://programmers.co.kr/learn/courses/30/lessons/17686파일명을 세 부분으로 나누어 정렬하는 문제이다. 세 부분으
문제 링크문제 그대로 따라가다가 효율성에서 0점이 나온 문제다. stack을 사용해서 for문 한번에 해결해야 한다.앞에서부터 하나씩 스택에 넣는데, 가장 위에 있는 알파벳이 지금 넣을 알파벳과 같으면 짝지어지는 것이므로 스택에 넣지 않고 pop한다.마지막 알파벳까지
문제 링크해시 카테고리로 분류되어있는 문제이긴 한데, Trie(트라이) 개념을 적용해서 풀이했다.Trie란?탐색 트리의 일종으로, 문자열을 빠르게 탐색하게 해주는 자료구조 이다. 즉, '문자열'을 관리하는 방법 중의 하나이다.문제의 예제1를 그림으로 그리면 아래와 같다
문제 링크잘 생각해보면, 아주 쉽게 풀 수 있는 문제이다.규칙을 생각해보자. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 된다.즉, (자신의 번
문제 링크 풀이 처음보는 신선한 문제였다. 얼만큼의 영역을 못쓰게 되는지 어떻게 판단해야하는지 고민을 많이 했는데, 좌표 위 그래프로 생각하면 쉽게 풀 수 있다. // 얘를 왜 long으로 바꿔야 되는거지? 범위가 최대 1억인데? 코드 정리 🤦♀️ 메모
문제 링크전형적인 다익스트라 문제이다. 1번 마을로부터 다른 마을까지 갈 수 있는 최소 거리를 구한 뒤에, k보다 같거나 작은 경우만 카운트 해주면 된다.<다익스트라 알고리즘 구현>A를 시작점으로 했을 때의 다른 도시까지의 거리에 대한 정보를 dist\[]로 선언
문제 링크DP로 풀이하면 되는 문제이다.가로의 길이가 4로 고정되어 있기 때문에 4가지의 case를 나누어서 dp 테이블을 채워주었다.문제의 예제를 그림으로 표현하면 아래과 같다.우선 첫번째 행은 원래 land 값으로 초기화 한다.두번째 행부터 보는데, 한 행씩 내려올