Algorithm

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..

Algorithm/PTUStudy

1주차. 문자열 조작(로그파일 재정렬)

03. 로그파일 재정렬 📌문제 로그를 재정렬하라. 기준은 다음과 같다. >1. 로그의 가장 앞 부분은 식별자다. 2. 문자로 구성된 로그가 숫자 로그보다 앞에 온다. 3. 식별자는 순서에 영향을 끼치지 않지만, 문자가 동일한 경우 식별자 순으로 한다. 4. 숫자 로그는 입력 순서대로 한다. - 예제1 📝입력 `["dig1 8 1 5 1","let1 art can","dig2 3 6","let2 own kit dig","let3 art zero"]` 💻출력 `["let1 art can","let3 art zero","let2 own kit dig","dig1 8 1 5 1","dig2 3 6"]` - 예제2 📝입력 `["a1 9 2 3 1","g1 act car","zo4 4 7","ab1 off key ..

Algorithm/PTUStudy

1주차. 문자열 조작(문자열 뒤집기)

02. 문자열 뒤집기 📌문제 문자열을 뒤집는 함수를 작성하자. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라. - 예제1 📝입력 `["h","e","l","l","o"]` 💻출력 `["o","l","l","e","h"]` - 예제2 📝입력 `["H","a","n","n","a","h"]` 💻출력 `["h","a","n","n","a","H"]` 📌풀이 1. 배열 직접 조작 (1ms, 47.2mb) public void reverseString(char[] arr) { for(int i = 0; i < arr.length/2; i++){ char temp = arr[i]; arr[i] = arr[arr.length - 1 - i]; arr[arr.length - 1 - i] = temp;..

Algorithm/PTUStudy

1주차. 문자열 조작(유효한 팰린드롬)

01. 유효한 팰린드롬 📌문제 주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다. - 예제1 📝입력 `A, man, a paln, a canal: Panama` 💻출력 `true` - 예제2 📝입력 `race a car` 💻출력 `false` 📌풀이 1. 정규식을 활용한 방법 (656ms, 43.5mb) public boolean solution2(String str){ boolean answer = false; str = str.replaceAll("[^0-9a-zA-Z]",""); String reversStr = new StringBuilder(str).reverse().toString(); if(str.equalsIgnoreCase(reversSt..

지구우중
'Algorithm' 카테고리의 글 목록 (8 Page)