항해99 28

99클럽 코테 스터디 18일차 TIL: [프로그래머스] N으로 표현

https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr DP를 사용해서 풀 수 있는 문제였다.  처음에는 다음과 같이 만들어진 숫자의 끝에 사칙연산을 추가하는 식으로 풀었다.num + Nnum - Nnum * Nnum / N그런데 이렇게 풀면 오답이다. 만약 5을 4번 사용한다고 했을 때 (5 + 5) * (5 + 5) (= 100)라는 식이 있을 수 있다. 그런데 위 방법대로라면 저 식은 나올 수 없고 (5 + 5) * 5 + 5 (= 55)라는 식만 ..

CS/Algorism 2024.06.06

99클럽 코테 스터디 17일차 TIL: [프로그래머스] 단속카메라

https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 그리디로 풀 수 있는 문제였다.최대한 적은 수의 카메라를 설치하기 위해서는 각 자동차가 위치한 범위 내에서 최대한 뒤쪽에 카메라를 설치하면 된다. 그래야 다음 자동차도 이미 설치된 카메라 범위에 포함될 가능성이 있기 때문이다. 즉, 당장에 가장 좋은 것을 선택(= 가장 뒤에 카메라를 설치) 한다는 점에서 그리디 알고리즘이다. 위 아이디어를 가지고 구현하면 되는데, 자동차가 고속도로를 나간 시점을 기준..

CS/Algorism 2024.06.05

99클럽 코테 스터디 16일차 TIL: [프로그래머스] 섬 연결하기

https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 유니온 파인드(+ 그리디)를 사용하면 아주 간단하게 풀 수 있는 문제이다. (그런데 나는 유니온 파인드를 머릿 속에서 잊고 있어서 못 풀었다.)유니온 파인드를 통해 모든 노드가 하나의 집합이 되도록 다리를 건설하면 된다.그런데 최소 비용이 되도록 다리를 건설해야 하므로, 건설 비용이 적은 다리부터 건설하면 된다.즉, "다리 건설 비용이 적은 순"으로, "모든 노드가 하나의 집합이 될 때까지" 다리를 ..

CS/Algorism 2024.06.04

99클럽 코테 스터디 15일차 TIL: [프로그래머스] 주식가격

https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr dfs로 아주 간단하게 풀 수 있는 문제다. 이차원 배열을 순회한다. 이때 아직 방문하지 않았으면서 값이 1이면 dfs를 시작한다.dfs를 통해 이어진 모든 노드들을 방문한다.dfs를 수행한 횟수가 네트워크 개수가 된다.import java.util.*;class Solution { int answer = 0; int n; int[][] computers; boolean[..

CS/Algorism 2024.06.03

99클럽 코테 스터디 14일차 TIL: [프로그래머스] 단어 변환

https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음에는 익숙한 dfs로 풀었었는데, begin을 target으로 변환하는 가장 빠른 과정을 찾아야 하므로 bfs가 더 적합한 거 같다. 그런데 dfs로 풀더라도 가지치기를 하면 되니까 큰 차이는 없을 거 같다.  dfs로 푼 풀이는 다음과 같다.import java.util.*;class Solution { String begin; String target; String[] ..

CS/Algorism 2024.06.02

99클럽 코테 스터디 13일차 TIL: [프로그래머스] 아이템 줍기

https://school.programmers.co.kr/learn/courses/30/lessons/87694 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr bfs 문제인 건 딱 보고 알았는데 구현을 어떻게 해야할지 감이 안왔다. 주의할 점들은 다음과 같다.우선 내가 막힌 부분은 "테두리를 의미하는 꼭짓점을 이차원 배열로 구현하는 것이 올바른가?"였다. 그런데 다음을 보면, 테두리를 기준으로 해서 테두리 수를 셌을 때랑, 이차원 배열을 기준으로 해서 가장자리 칸들의 수를 셌을 때랑 차이가 없다는 것을 알 수 있다. 따라서 이차원 배열로 구현해도 된다!다음..

CS/Algorism 2024.06.01

99클럽 코테 스터디 12일차 TIL: [프로그래머스] 여행경로

https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 처음에 푼 풀이는 다음과 같다. import java.util.*;class Solution { public String[] solution(String[][] tickets) { Map> map = new HashMap(); for (String[] ticket : tickets) { PriorityQueue que = map.getOrDefault..

CS/Algorism 2024.05.31

99클럽 코테 스터디 11일차 TIL: [프로그래머스] 퍼즐 조각 채우기

https://school.programmers.co.kr/learn/courses/30/lessons/84021 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 예전에 풀다가 빡구현에 지쳐서 포기한 문제인데 이번엔 풀었다..! 아이디어 자체는 간단하다.bfs를 통해 퍼즐과 빈칸들을 찾는다. 그리고 나중에 빈칸에 퍼즐을 넣을 수 있는지 비교해야 하므로 퍼즐과 빈칸의 위치를 0, 0을 시작으로 하며, 딱 맞는 크기의 배열로 만들어야 한다.그리고 각 빈칸에 각 퍼즐들이 들어갈 수 있는지 확인한다. 빈칸과 퍼즐의 사이즈는 딱 맞아야 한다. 즉, 두 배열의 가로, 세..

CS/Algorism 2024.05.30

99클럽 코테 스터디 10일차 TIL: [프로그래머스] 전력망을 둘로 나누기

https://school.programmers.co.kr/learn/courses/30/lessons/86971# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 전선들 중 하나를 골라 끊어야 한다. 따라서 wires를 하나씩 고르며 완전탐색을 진행했다.그리고 끊은 전선을 기준으로 dfs를 진행한다. 예를 들어, 3과 4를 이은 전선을 끊을 경우 3을 기준으로 이어진 송전탑들이 몇 개인지 dfs를 진행하고, 4를 기준으로 이어진 송전탑들이 몇 개인지 dfs를 진행한다. 그리고 두 값의 차이를 구한다.내가 유독 헷갈렸던 부분은 dfs에서 sum에 값을 더하고 ..

CS/Algorism 2024.05.29

99클럽 코테 스터디 9일차 TIL: [프로그래머스] 모음사전

https://school.programmers.co.kr/learn/courses/30/lessons/84512?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 조금 헤맸는데 dfs로 쉽게 해결할 수 있는 문제였다. dfs로 "A", "E", "I", "O", "U"를 차례대로 이어서 만들어진 각 문자열들을 리스트에 담고, word가 몇 번째 문자열인지 확인하면 된다.이렇게 하면 시간 복잡도는 dfs(O(5^5)) + 완전탐색(O(5^5))이다.import java.util.*;class Solution { String[..

CS/Algorism 2024.05.28