TIL 25

[JAVA] 백준 | 15819 너의 핸들은

📝 TIL- [백준] 15819 너의 핸들 제한사항시간제한 1초메모리 제한 512MB 입출력 예입력#14 1acka1357spectaclehongmitslllluke0201 출력#1acka1357🦔 설계 및 시도사전 순서이므로 정렬은 단순 정렬이라고 생각해Arrays.sort()를 활용하기로 했다. 오히려 어려웠던 점은 핸들 수와 사전 순을 입력받고그 다음에 핸들 수만큼 입력받는, 입력단이 구현이 어려웠다.입력 첫 줄에 핸들 수, 사전 순서가 공백으로 구분되어 들어오므로StringTokenizer를 사용했다. 🔥 풀이에 사용된 개념 StringTokenizer- 문자열을 특정 구분자(delimiter) 기준으로 분리해주는 유틸 클래스- 기본 구분자 : 공백(스페이스, 탭, 개행 포함) / \n \t..

TIL/알고리즘 2025.04.07

[JAVA] 프로그래머스 | 181905 문자열 뒤집기

📝 TIL- [181905] 문자열 뒤집기 제한사항my_string은 숫자와 알파벳으로만 이루어져 있습니다.1 ≤ my_string의 길이 ≤ 1,0000 ≤ s ≤ e   입출력 예입출력 예#1my_stringseresult "Progra21Sremm3" 612 "ProgrammerS123" "Stanley1yelnatS" 410 "Stanley1yelnatS"  🦔 설계 및 시도지난번에 문자열 여러번 뒤집기 문제를 풀어서이번에는 조금 수월하게 풀었다. 다만 지난번에 for문을 사용했다면, 이번에는 공부하다 알게된 reverse를 쓰기로 했다.reverse는 method라 사용에는 크게 어렵지 않았으나,String의 메서드인지 StringBuffer의 메서드인지 헷갈렸다결론은 StringBuffe..

TIL/알고리즘 2025.04.04

[JAVA] 프로그래머스 | 181949 대소문자 바꿔서 출력하기

📝 TIL- [프로그래머스] 181949 대소문자 바꿔서 출력하기  제한사항1 ≤ str의 길이 ≤ 20str은 알파벳으로 이루어진 문자열입니다. 입출력 예입력#1aBcDeFg 출력#1AbCdEfG🦔 설계 및 시도String 문자열 전체에서 비교하는 것은 어려울 거 같아서for문과 charAt을 이용하여 String 내 문자 하나하나를 비교했다. 1. for문 > 해당 문자가 소문자면 대문자로 / 대문자면 소문자로2. StringBuilder를 이용하여 append ❌ 에러처음에 return하는 줄 알고 return을 썼는데 /Solution.java:16: error: incompatible types: unexpected return value라는 에러가 계속 떠서 뭐지? 했더니 main() 메서..

TIL/알고리즘 2025.04.04

[JAVA] 백준 | 3181 줄임말 만들기

📝 TIL- [백준] 3181 줄임말 만들기https://www.acmicpc.net/problem/3181 제한사항시간 제한 1초메모리 제한 128MB 입출력 예입력#1micro soft 출력#1MS 입력#2biti ali i ne biti 출력#2BNB🦔 설계 및 시도처음에는 어제 풀었던 숫자 문자로 바꾸기 문제와 비슷하게,제외 단어들을 배열에 넣고 아니면 첫 문자만 가져오게 하려고 했다.  String[] check = {"i", "pa", "te", "ni", "a", "nego", "no", "ili"};StringBuilder sb = new StringBuilder();sb.append(parts[0].charAt(0)); for(int i=1; i 이런 느낌으로 작성하려고 했는데....

TIL/알고리즘 2025.04.02

[JAVA] 백준 | 13235 팰린드롬

📝 TIL- [백준] 13235 팰린드롬https://www.acmicpc.net/problem/13235 제한사항시간제한 1초메모리 제한 128MB 입출력 예입력#1owo 출력#1true  입력#2zzzzzzzzo 출력#2false🦔 설계 및 시도사실 팰린드롬은 너무 유명한 문제라 다른 문자열 문제들에 비해서는 쉽게 풀었다분명히 예전에 팰린드롬 만들기도 했던 거 같은데,지금 머릿속으로 생각해보니 만들기는 못할 거 같다! 하하 무튼! 팰린드롬의 경우 구현 방법은 간단하다.앞에서부터 읽어도, 뒤에서부터 읽어도 똑같아야 하기 때문에앞에서 비교 -> 를 진행해 다를 경우 false를 반환하면 된다. 오히려 자바 시작하고 프로그래머스나 리트코드로만 풀어서 main 메서드 작성이 낯설었다.다른 플랫폼과 구조를..

TIL/알고리즘 2025.04.02

[JAVA] 프로그래머스 | 12915 문자열 내 마음대로 정렬하기

📝 TIL- [프로그래머스] 12915 문자열 내 마음대로 정렬하기 제한사항strings는 길이 1 이상, 50이하인 배열입니다.strings의 원소는 소문자 알파벳으로 이루어져 있습니다.strings의 원소는 길이 1 이상, 100이하인 문자열입니다.모든 strings의 원소의 길이는 n보다 큽니다.인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다.  입출력 예입출력 예 #1stringsnreturn["sun", "bed", "car"]1["car", "bed", "sun"]["abce", "abcd", "cdx"]2["abcd", "abce", "cdx"] 🦔 설계 및 시도처음에 map을 사용하여 각 strings의 n을 key로, 나머지는 value로 ..

TIL/알고리즘 2025.04.02

[JAVA] 프로그래머스 | 181913 문자열 여러 번 뒤집기

📝 TIL- [프로그래머스] 181913 문자열 여러 번 뒤집기 제한사항my_string은 영소문자로만 이루어져 있습니다.1 ≤ my_string의 길이 ≤ 1,000queries의 원소는 [s, e]의 형태로 0 ≤ s ≤ e 1 ≤ queries의 길이 ≤ 1,000  입출력 예입출력 예#1my_stringqueriesresult"rermgorpsam"[[2,3], [0,7], [5,9], [6,10]]"programmers" 🦔 설계 및 시도 처음에 투포인터를 사용해야 되는 거 아닌가 생각했다가문법의 미숙함으로 구현이 어려울 거 같아서 인덱스로 문제를 해결했다 이렇게 구간을 나눠서  1. 0~queries[i][0]2. queries[i][0]~queries[i][1]3. queries[i][1..

TIL/알고리즘 2025.04.02

[JAVA] 프로그래머스 | 81301 숫자 문자열과 영단어

📝 TIL- [프로그래머스] 81301 숫자 문자열과 영단 제한사항1 ≤ s의 길이 ≤ 50s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.  입출력 예입출력 예 #1sresult "one4seveneight" 1478 "23four5six7" 234567 "2three45sixseven" 234567  🦔 설계 및 시도처음에 map으로 넣을까 하다가 put 을 10번 쓰기가 귀찮아서String 배열을 생성한 후 값을 넣었다. 1. String[] 배열에 zero~ten 넣기(만약 중간에 숫자가 비어있거나, 랜덤값이라면 map을 사용해야함)2. replace() 메서드를 ..

TIL/알고리즘 2025.04.01

[JAVA] 프로그래머스 | 181945 문자열 돌리기

📝 TIL- [프로그래머스] 181945 문자열 돌리기 제한사항 1 ≤ str의 길이 ≤ 10  입출력 예입력#1abcde 출력#1abcde🦔 설계 및 시도 큰 알고리즘이 있는 문제라기 보다는!charAt(int index)의 개념을 아는 것이 핵심이었던 거 같다  🔥 풀이에 사용된 개념CharAt(int index): 문자열에서 특정 위치의 문자에 접근할 때 사용   💡 풀이 소스 코드시간복잡도 : O(n) 공간복잡도 : O(1)import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String ..

TIL/알고리즘 2025.04.01

[CS] 시간복잡도와 공간복잡도

코딩 테스트, 알고리즘 공부를 하면서 가장 먼저 마주치는 개념이시간복잡도(Time Complexity)와 공간복잡도(Space Complexity)이다.테스트 케이스를 통과하는 것을 넘어 얼마나 빠르고 효율적으로 해결했는지가 중요하기 때문!실제로 어려운 문제로 넘어갈수록 정답은 다 맞아도 시간 초과가 뜨는 경우가 허다하다그것은 나의 경험 본격적인 알고리즘 스터디를 진행하기 전,시간복잡도와 공간복잡도에 대해 한 번 더 정리하고자 한다.  1. 시간복잡도(Time Complexity)시간복잡도는 입력 크기(n)에 따라 알고리즘의 실행 시간이 얼마나 증가하는지를 수치적으로 표현한 것.쉽게 생각했을 때 최악의 경우 걸리는 연산 횟수의 증가율을 나타낸 것이다.최악의 경우를 기준으로, 'Big-O 표기법'을 사용하..

TIL/알고리즘 2025.03.31