🔗 백준 1719 택배 📌오늘의 학습 키워드문제에서 나 플루이드 워셜 이에요~~ 라고 티를 내고 있다.하지만 특이한 게 있다면 첫번째로 들러야 하는 지점을 저장해야한다는 것!✨공부한 내용 본인의 언어로 정리하기단순히 "이동 가능한 가장 짧은 거리를 구하시오" 했으면 쉬웠을 것이다.첫번째로 들러야 하는 지점을 찾기 위해 업데이트 하면서 DP로 어디를 지나왔는 지 추적해야했다.📚오늘의 회고첫번째 지점을 찾기 위해 지나온 점을 계속 추적해 나가는 방법을 사용했다. 테스트시 사용했던 코드는 꼭 지우자^^[🤓문제 해결 코드]더보기import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav..
개발자취업
🔗 백준 17609 회문📌오늘의 학습 키워드투포인터문자열을 처음과 끝에서부터 포인터로 살펴보면서 회문인지, 유사회문인지 확인하는 알고리즘✨공부한 내용 본인의 언어로 정리하기처음에는 while문을 이용한 투포인터로 해결하려고 했다.유사회문을 찾을 때 만약 한칸을 띄었을 경우 다른 포인터 값과 일치하면 한칸을 띄고 진행했다.하지만 abxxbxa 의 경우 앞 포인터를 띄우거나 뒤 포인터를 띄웠을 때 모두 2번 조건을 만족하고, 둘 다 진행해 봐야 답을 찾을 수 있었다.따라서 while문이 아닌 어떤 문자를 띄우든 답을 확인해볼 수 있도록 재귀로 바꿔서 풀었다.[🤓문제 해결 코드]더보기import java.io.BufferedReader;import java.io.IOException;import java..
🔗 백준 11404 플로이드 📌오늘의 학습 키워드플로이드 와샬 구현하기✨공부한 내용 본인의 언어로 정리하기바깥 루프를 중간 점으로, 안쪽 2개 루프가 업데이트할 정보📚오늘의 회고다시한번 다익스트라, 벨만 포드, 플루이드와샬의 특징을 정리했다.[🤓문제 해결 코드]더보기import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.PriorityQueue;import java.util.StringTokenizer;// 자료형 longpublic class Main { static int N, M, a, b, c; static long[][] value; static Stri..
🔗 백준 9663 N-Queen 여덟 퀸 문제 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 8 퀸 문제는 8x8크기의 체스판에 퀸을 8개 배치하는 문제이다. 1848년 막스 베첼이 처음 제안하였다. 이 문제를 일반화하면 NxN 크기의 체스판에 퀸을 N개 배치하는ko.wikipedia.org 📌오늘의 학습 키워드백트래킹✨공부한 내용 본인의 언어로 정리하기N x N에 N개의 퀸을 놓으려면 각 열에 적어도 한개의 퀸이 놓여야 한다. 📚오늘의 회고제대로된 종료조건을 찾지 못해서 헤맸다.한개씩 퀸을 배치하고, 해당 퀸의 영향력을 MAP에 표시하고다시 그 영향력이 미치지 않는 곳을 찾아서 퀸을 놓은 후에마지막에는 나머지 빈 공간을 모두 세는 것으로 알고리즘을 만들어봤는데 😅 여기에..
🔗 백준 13317 한 번 남았다 Python📌오늘의 학습 키워드벨만 포드 ✨공부한 내용 본인의 언어로 정리하기벨민 포드는 방향이 있는 그래프에서 각 노드 사이의 최단 거리를 구하는 방법이다.📚오늘의 회고첫번째에서는 그래서 뭘 하라는 건데? 라는 의문을 가졌다가 아 테스트케이스를 제시하라는 거구나 알았다.근데 내가 바로 Dijkstra 알고리즘밖에 모르는 지구이여서 문제였다. 😅중요한 조건으로는간선은 1 또는 -1 의 가중치만 갖는 다는 것지구이는 정점의 갯수 - 2 번까지는 제대로 수행하므로 정점의 갯수 - 1 번째에도 변화가 있어야 할 것막 복잡하게 해보다가 구글링해본 결과 답은 일 차 트리였는데, 간선을 1->2, 2->3 순으로 적지 말고 49->50, 48->49 이렇게 적어야 2번째 중..
🔗 [백준] 2179 비슷한 단어 📌오늘의 학습 키워드접두사? 접두사가 비슷해? 저번 문제랑 비슷한가? 트라이로 풀어 볼까?✨공부한 내용 본인의 언어로 정리하기모든 단어 중에서 🛎️중복을 제거하고 트라이에 넣어준다.제일 긴 height를 가진 노드중에 제일 앞쪽에 위치한 단어들을 뽑아서 반환한다.📚오늘의 회고중복을 제거하지 않아서 틀렸었다.height가 0에서부터 시작하는 데 dfs 종료조건을 height가 1에서부터 시작한다고 착각해 잘못 설정하여 틀렸었다.완전 탐색이 시간복잡도가 더 낮은 문제군! (내가 이상하게 풀었군..!) [🤓문제 해결 코드]더보기N = int(input())visited = []class TrieNode: def __init__(self): self...
🔗 프로그래머스 - 양과 늑대 (카카오)📌오늘의 학습 키워드백트래킹✨공부한 내용 본인의 언어로 정리하기백트래킹에서 어떤 조건을 이용해 종료시킬 것인가가 핵심이었다.너무 복잡하게 알고리즘을 구성하다가 파라미터값이 4개에 이르게 되었고, 결국 구글링을 했다...ㅎ종료조건으로 양과 늑대의 갯수가 아니라 트리의 끝까지 갔는지로 판단하려고 했는데트리에서 아래 뿐만 아니라 위로도 갈 수 있다 보니까 좋은 종료조건이 아니었다. (위 아래 위 아래 이런 반복이 생기면서 재귀가 끝나지 않았음)[종료조건] 늑대에게 양이 다 잡아먹히면 끝난다.- 그렇지 않으면 answer에 현재 양의 갯수를 저장해서 마지막에 최대값을 정답으로 반환한다. [재귀조건] 간선을 기준으로 진행한다. 만약 부모노드를 방문했고, 자식노드를 방문하..
🔗 [백준] 17825 주사위 윷놀이 📌오늘의 학습 키워드DFS, 백트래킹✨공부한 내용 본인의 언어로 정리하기백트래킹을 구현하는 데까지는 진행했으나..이 엄청나게 큰 윷놀이판을 어떻게 코드로 나타낼 것인가 대해 한참... 고민하다가유투브 선생님의 도움을 받았다... 갈림길을 해결하는 방법look up table을 적을 때, 갈림길에서 가야하는 길을 추가로 적어준다. 그리고 말을 움직일 때 한칸을 먼저 움직이는 데 [-1] 인덱스로 접근해서 갈림길인 경우 규칙에 따라 움직이게 해준다.말이 이동을 마치는 칸에 다른 말이 있으면 그 말은 고를 수 없다. 단, 이동을 마치는 칸이 도착 칸이면 고를 수 있다.말들의 현재 위치를 저장하는 array를 둔다.만약 말을 이동한 위치가 array 안에 있으면 이동하지..