본문 바로가기

Algorithm40

DFS and BFS import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class GraphTest { static int n, m,v; //정점의 개수, 간선의 개수, 시작 정점을 나타내는 변수 static int[][] graph; //인접 행렬을 나타내는 graph 배열 static boolean[] visited; //정점의 방문 여부를 나타내는 visited 배열 public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); v = sc.nextInt(); System.out.. 2024. 3. 24.
문자열에서 첫 번째 고유 문자 찾기 주어진 문자열에서 첫 번째 고유 문자의 인덱스를 반환하세요. 고유 문자가 없으면 -1을 반환 fun firstUniqChar(s: String): Int { val frequency = IntArray(26) for (i in s.indices) { frequency[s[i] - 'a']++ } for (i in s.indices) { if (frequency[s[i] - 'a'] == 1) return i } return -1 } 2023. 10. 29.
문자열의 모든 순열 fun permute(str: String, l: Int, r: Int, result: MutableList) { if (l == r) result.add(str) else { for (i in l..r) { val swapped = str.toCharArray().apply { this[l] = this[i].also { this[i] = this[l] } }.joinToString("") permute(swapped, l + 1, r, result) } } } fun getAllPermutations(s: String): List { val result = mutableListOf() permute(s, 0, s.length - 1, result) return result } 2023. 10. 29.
가장 긴 공통 접두사 fun longestCommonPrefix(strs: Array): String { if (strs.isEmpty()) return "" strs.sort() val first = strs[0] val last = strs[strs.size - 1] var i = 0 while (i < first.length && first[i] == last[i]) i++ return first.substring(0, i) } 2023. 10. 29.
유효한 괄호 문자열 확인 fun isValidParentheses(s: String): Boolean { val stack = ArrayDeque() for (char in s) { when (char) { '(', '[', '{' -> stack.addLast(char) ')' -> if (stack.isEmpty() || stack.removeLast() != '(') return false ']' -> if (stack.isEmpty() || stack.removeLast() != '[') return false '}' -> if (stack.isEmpty() || stack.removeLast() != '{') return false } } return stack.isEmpty() } fun main() { println.. 2023. 10. 29.
최빈 단어 찾기 fun mostFrequentWord(s: String): Pair? { val words = s.split(' ') val frequencyMap = words.groupingBy { it }.eachCount() return frequencyMap.maxByOrNull { it.value } } fun main() { val (word, frequency) = mostFrequentWord("this is a sample program and it is a sample") ?: Pair("", 0) println("$word: $frequency") // "sample: 2" } 2023. 10. 29.