Algorithm/PTUStudy

Algorithm/PTUStudy

3주차. 더하기 사이클

1110. 더하기사이클 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 📌문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작..

Algorithm/PTUStudy

3주차. 소수찾기

1978. 소수찾기 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 📌문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. - 예제1 📝입력 4 1 3 5 7 💻출력 3 📌풀이 1. 에라토스테네스의 체 (14164 KB,124ms) package week3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer;..

Algorithm/PTUStudy

3주차. 배열(세수의 합)

09. 세수의 합 https://leetcode.com/problems/3sum/ 3Sum - LeetCode 3Sum - Given an integer array nums, return all the triplets [nums[i], nums[j], nums[k]] such that i != j, i != k, and j != k, and nums[i] + nums[j] + nums[k] == 0. Notice that the solution set must not contain duplicate triplets. Example 1: Input: nums leetcode.com 📌문제 배열을 입력받아 합으로 0을 만들 수 있는 3개의 엘리먼트를 출력하라 - 예제1 📝입력 nums = [-1,0,1,2,..

Algorithm/PTUStudy

3주차. 배열(빗물 트래핑)

08. 빗물 트래핑 https://leetcode.com/problems/trapping-rain-water/ Trapping Rain Water - LeetCode Trapping Rain Water - Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining. Example 1: [https://assets.leetcode.com/uploads/2018/10/22/rainwatertrap.png] Input: he leetcode.com 📌문제 높이를 입력받아 비 온 후 얼마나 많은 물이 쌓일 수 있는지 ..

Algorithm/PTUStudy

3주차. 배열(두수의 합)

07. 두수의 합 https://leetcode.com/problems/two-sum/ Two Sum - LeetCode Two Sum - Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return leetcode.com 📌문제 덧셈하여 타겟을 만들 수 있는 배열의 두 인덱스를 리턴하라 - 예제1 📝입력 nums = [2,7,11,..

Algorithm/PTUStudy

2주차. 소수구하기

1929. 소수구하기 https://www.acmicpc.net/problem/1929 📌문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. - 예제1 📝입력 3 16 💻출력 3 5 7 11 13 📌풀이 1. 에라토스테네스의 체 (37296 KB,1008 ms) package week2; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class 소수구하기 { public static void main(String[] args) throws IOException { BufferedReader br = ..

Algorithm/PTUStudy

2주차. 오븐시계

2525. 오븐시계 https://www.acmicpc.net/problem/2525 📌문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. - 예제1 📝입력 `14 30` 💻출력 `20` - 예제2 📝입력 `17..

Algorithm/PTUStudy

2주차. 문자열 조작(가장 긴 팰린드롬 부분 문자열)

05. 가장 긴 팰린드롬 부분 문자열 📌문제 가장 긴 팰린드롬 부분 문자열을 출력하라 - 예제1 📝입력 ` s = "babad"` 💻출력 `"bab"` - 예제2 📝입력 `s = "cbbd"` 💻출력 `"bb"` 📌풀이 1. 중앙을 중심으로 확장 풀이 (23ms, 42.2mb) public String longestPalindrome(String s) { int len = s.length(); if (len < 2) return s; for (int i = 0; i < len-1; i++) { extendPalindrome(s, i, i); //홀수 extendPalindrome(s, i, i+1); //짝수 } return s.substring(start, start + maxLen); } privat..

Algorithm/PTUStudy

2주차. 문자열 조작(그룹 애너그램)

04. 그룹 애너그램 📌문제 문자열 배열을 받아 애너그램 단위로 그룹핑하라 - 예제1 📝입력 `strs = ["eat","tea","tan","ate","nat","bat"]` 💻출력 `[["bat"],["nat","tan"],["ate","eat","tea"]]` - 예제2 📝입력 `strs = [""]` 💻출력 `[[""]]` 📌풀이 1. Map을 활용한 방법 (7ms, 45.4mb) public List groupAnagrams(String[] strs) { Map map = new HashMap(); for(String s : strs){ char[] charArr = s.toCharArray(); Arrays.sort(charArr); String key = String.valueOf(charA..

Algorithm/PTUStudy

2주차. 문자열 조작(가장 흔한 단어)

03. 가장 흔한 단어 📌문제 금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라. 대소문자 구분을 하지 않으며, 구두점(마침표, 쉼표 등) 또한 무시한다. - 예제1 📝입력 `paragraph = "Bob hit a ball, the hit BALL flew far after it was hit." banned = ["hit"]` 💻출력 `"ball"` - 예제2 📝입력 `paragraph = "a.", banned = []` 💻출력 `"a"` 📌풀이 1. Map과 Set을 활용한 방법 (12ms, 42.5mb)⭐ public String mostCommonWord(String paragraph, String[] banned) { String answer = ""; Map map = new Ha..