Problem Solving
[프로그래머스] 2023 KAKAO BLIND RECRUITMENT | 이모티콘 할인행사
[프로그래머스] 2023 KAKAO BLIND RECRUITMENT | 이모티콘 할인행사
2023.09.23🔎문제 프로그래머스 2023 KAKAO BLIND RECRUITMENT Lv.2 이모티콘 할인행사 https://school.programmers.co.kr/learn/courses/30/lessons/150368?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡풀이 python itertools의 product()를 이용해 중복 순열을 구한 다음, 모든 결과를 리스트에 넣고 문제 조건대로 정렬했다. 중복 순열을 구하는 과정이 어렵다면 어려운 과정인데,, 파이썬이 이럴때는 정말 깡패다. 📃소스코드 from itertools ..
[프로그래머스] Lv2. 방문 길이 - 49994 (Ptyhon)
[프로그래머스] Lv2. 방문 길이 - 49994 (Ptyhon)
2023.07.09🔎문제 ✔️ Summer/Winter Coding(~2018) https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡풀이 현재 좌표를 x, y / 다음 좌표를 nx, ny 라고 했을때 (x, y) -> (nx, ny) or (nx, ny) -> (x, y) 를 한 사실이 있는지 체크해 없으면 처음간 길이므로 +1 해주는 문제였다. 이때 좌표계를 벗어나면 무시한다. set을 하나 선언해, 예를들어 (1,2)에서 (3,4)로 갔으면 "1324" 문자열..
[프로그래머스] Lv.4 쿠키 구입 (Python)
[프로그래머스] Lv.4 쿠키 구입 (Python)
2023.07.09🔎문제 ✔️ Summer/Winter Coding(~2018) https://school.programmers.co.kr/learn/courses/30/lessons/49995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡풀이 1 투포인터로 풀었다. m을 고정하고 왼쪽, 오른쪽을 투포인터로 설정한다. 왼쪽의 합이 오른쪽의 합보다 더 작으면 왼쪽 포인터를 감소시켜 왼쪽의 합을 늘린다. 오른쪽의 합이 왼쪽의 합보다 더 작으면 오른쪽 포인터를 증가시켜 오른쪽의 합을 늘린다. 왼쪽이나 오른쪽중 범위를 초과할경우 while문을 종료하고, 다음 m으로 같은 작업..
[BOJ/백준] 11054. 가장 긴 바이토닉 부분 수열 (Java)
[BOJ/백준] 11054. 가장 긴 바이토닉 부분 수열 (Java)
2023.06.15🔎문제 https://www.acmicpc.net/problem/11054#:~:text=%ED%9E%8C%ED%8A%B8,%EB%B0%94%EC%9D%B4%ED%86%A0%EB%8B%89%20%EB%B6%80%EB%B6%84%20%EC%88%98%EC%97%B4%EC%9D%B4%EB%8B%A4. 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 💡풀이 증가하다 감소하거나, 감소만하거나, 증가만 하는, 변곡점이 하나 이하인 수열을 구하는 문제이다. 증가하는 부분과 감소하는 부분이 각각 길수록 바이토닉 수열도 길것이다. 그러므로 LI..
[BOJ/백준] 2352. 반도체 설계 (Java)
[BOJ/백준] 2352. 반도체 설계 (Java)
2023.06.13🔎문제 https://www.acmicpc.net/problem/2352 2352번: 반도체 설계 첫째 줄에 정수 n(1 ≤ n ≤ 40,000)이 주어진다. 다음 줄에는 차례로 1번 포트와 연결되어야 하는 포트 번호, 2번 포트와 연결되어야 하는 포트 번호, …, n번 포트와 연결되어야 하는 포트 번호가 주 www.acmicpc.net 💡풀이 LIS(가장 긴 증가하는 부분 수열) 문제이다. (백준에 시리즈로 있는 LIS 문제들은 따로 정리해놓은것이 있으니 참고하세요😊) 지정된 포트들을 연결하면서, 가장 많이 연결하면 된다. 뒷쪽 포트가 앞보다 더 앞 포트를 연결하면 안되므로, 뒤로 갈수록 큰 숫자의 포트를 연결해야한다. 따라서 증가하는 수열을 구하면 되는 것이고, 가장 긴 것을 구하는것이므로 LIS문제..
[BOJ/백준] 3109. 빵집 (Java)
[BOJ/백준] 3109. 빵집 (Java)
2023.06.13🔎문제 https://www.acmicpc.net/problem/3109 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 💡풀이 왼쪽에서 오른쪽으로, 건물을 피해서 파이프라인을 설치한다. 이때 주의할 점이 있다. 문제에는 '각 칸은 오른쪽, 오른쪽 위 대각선, 오른쪽 아래 대각선으로 연결할 수 있다' 고 되어있지만, 오른쪽 위 대각선, 오른쪽, 오른쪽 아래 대각선 순서로 봐야 한다는 것이다. 최대한 위쪽으로 파이프를 밀착시켜 최대한 많은 파이프를 설치하도록 하는 것이다. 또, 이미 탐색했지만 파이프가 설치되지 않은 곳은 더 ..
[BOJ/백준] 가장 긴 증가하는 부분 수열(LIS) 시리즈 (Java)
[BOJ/백준] 가장 긴 증가하는 부분 수열(LIS) 시리즈 (Java)
2023.04.08문제 정리 문제 링크 티어 시간복잡도 알고리즘 가장 긴 증가하는 부분 수열 실버 2 O(n^2) DP 가장 긴 증가하는 부분 수열 2 골드 2 O(nlogn) 이분탐색 가장 긴 증가하는 부분 수열 3 골드 2 O(nlogn) 이분탐색 가장 긴 증가하는 부분 수열 4 골드 4 O(n^2) DP + 부분 수열 구하기 가장 긴 증가하는 부분 수열 5 플래 5 O(nlogn) 이분탐 + 부분 수열 구하기 가장 긴 증가하는 부분 수열 : DP / O(n^2) 11053 가장 긴 증가하는 부분 수열 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 ..