Algorithm 36

[python] 프로그래머스 level2 조이스틱

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42860?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 A가 연속되는 가장 긴 부분을 찾아 해당 부분은 건너지 않도록 이동횟수를 계산하는 것이 핵심 알파벳 변환 횟수 계산 (ord) 다음 글자부터 살피면서, 만약 A가 연속되는 경우 아래 경우를 비교하여 이동 횟수 계산 연속되는 A의 왼쪽까지 이동 후, 차례대로 알파벳 변환하면서 연속되는 A의 오른쪽까지 이동 연속되는 A의 오른쪽까지 이동 후, 차례대로 알파벳 ..

Algorithm 2023.05.04

[python] 프로그래머스 Level3 섬 연결하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 [kruskal 알고리즘] 그리디를 이용하여 네트워크의 모든 정점을 최소 비용으로 연결하는 최적 해답을 구하는 것 MST(최소 비용 신장 트리)가 최소 비용의 간선으로 구성 사이클을 포함하지 않음 의 조건에 근거하여 각 단계에서 사이클을 이루지 않는 최소 비용 간선을 선택한다. 코드 def solution(n, costs): answer = 0 costs.sort(key = lambda..

Algorithm 2023.05.04

5582번. 공통 부분 문자열

📚문제 https://www.acmicpc.net/problem/5582 5582번: 공통 부분 문자열 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들 www.acmicpc.net 💡접근 9951번. LCS(풀이 작성 예정)와 비슷해서 그대로 풀려고 했지만 약간 다르다. 9951번은 공통 부분 수열이고, 5582번은 공통 부분 문자열로 약간 다름. 수열의 경우에 문자열이 연속되는 지는 상관없이 공통인 문자열만 따진다면, 문자열 문제의 경우 연속되면서 + 공통인 문자열을 구하는 것 같다. 아래 과정을 모두 반복한 후 가장 큰 값이 답이 된다. null A B..

Algorithm 2023.01.02

[MySQL] Date and Time Functions

SQL 문제 풀다가 자주 쓰는 date 함수를 때마다 찾아봤는데 비슷한게 많아서 정리해보았다. https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_dayofmonth MySQL :: MySQL 8.0 Reference Manual :: 12.7 Date and Time Functions 12.7 Date and Time Functions This section describes the functions that can be used to manipulate temporal values. See Section 11.2, “Date and Time Data Types”, for a description of the ran..

Algorithm 2022.12.29

1439번. 뒤집기

📚 문제 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 💡 접근 쉬운 문제라고 생각했는데 잘 풀리지 않았다. 생각보다 간단해서 허무했다. 입력값들을 통해서 패턴을 찾는 게 역시 중요한 것 같다. 0->1, 1->0 바뀌는 횟수를 계산하고 +1 해준다음 2로 나눈 몫을 구해준다. 예시로 101010101 이라는 숫자가 들어왔을 때 (문자 -> 바뀐 횟수 -> 뒤집을 횟수) 1 -> 0 -> 0 10 -> 1 -> 1 101 -> 2 -> 1 1..

Algorithm 2022.12.28

[leetcode] longest-substring-without-repeating-characters

https://leetcode.com/problems/longest-substring-without-repeating-characters/ Longest Substring Without Repeating Characters - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 슬라이딩 윈도우로 한 칸씩 우측으로 이동하면서 2. 윈도우 내에 모든 문자가 중복이 없도록 3. 투 포인터로 윈도우 사이즈를 조절하면서 풀이한다. def lengthOfLongestSub..

Algorithm 2022.08.12