전체 글 25

[JAVA] 프로그래머스 | 12932 자연수 뒤집어 배열로 만들기

📝 TIL- [프로그래머스] 12932 자연수 뒤집어 배열로 만들기 제한사항 n은 10,000,000,000이하인 자연수입니다  입출력 예입력#1 12345  출력#1 [5,4,3,2,1] 🦔 설계 및 시도1. 숫자를 문자열로 변환 후 뒤집기2. 하나씩 쪼개서 정수로 저장! 문제 풀이 자체는 간단했는데 parseInt, String.valueOf 등 타입과 메서드 신경써야 할 것들이 많아서 은근 오래 걸렸다  🔥 풀이에 사용된 개념 String.valueOf(n)- 숫자나 여러 타입들(int, long, boolean 등)을 문자열(String)으로 바꿔주는 메서드- n+"" 로 쓰는 것과 비슷하지만 더 명시적이고 안전하다  Integer.parseInt(문자) - 문자열을 정수(int)로 바꿔주..

TIL/알고리즘 2025.04.10

[JAVA] 프로그래머스 | 181866 문자열 잘라서 정렬하기

📝 TIL- [프로그래머스] 181866 문자열 잘라서 정렬하 제한사항1 ≤ myString ≤ 100,000myString은 알파벳 소문자로 이루어진 문자열입니다.  입출력 예입력#1 "axbxcxdx"  출력#1 ["a","b","c","d"] 🦔 설계 및 시도1. split을 이용하여 x를 기준으로 나눈다2. 이때! xxxaaa와 같은 문자열은 공백이 생기므로.. 꼭! 빈문자열은 걸러주는 작업을 해야한다.3. 남은 문자열 정렬하여 배열로 반환하기  🔥 풀이에 사용된 개념 Split(String regex)괄호 안의 regex, 정규 표현식을 기준으로 문자열을 나눌 수 있다isEmpty()문자열이 빈 문자열인지 확인! if문과 주로 함께쓰고 빈문자열이면 truelist.toArray(new St..

TIL/알고리즘 2025.04.10

[JAVA] 프로그래머스 | 42746 가장 큰 수

📝 TIL- [프로그래머스] 42746 가장 큰 수 제한사항numbers의 길이는 1 이상 100,000 이하입니다.numbers의 원소는 0 이상 1,000 이하입니다.정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예입력#1[6, 10, 2] 출력#1"6210"🦔 설계 및 시도처음에 각 숫자를 문자로 바꿔서 비교하면 되지 않나?라고 생각했는데이 경우에 반례가 있었다 예를 들어 [6, 30, 3] 일 경우 문자열 정렬로 비교하면 [6, 30, 3]으로 정렬되는데,실제는 6303  따라서 두 수의 합을 비교했어야 했다!즉 숫자 비교가 아니라 붙였을 때 문자열 크기 비교가 핵심 1. 배열을 문자열로 변경하여 배열에 저장2. 두 문자열의 합을 기준으로 하여 정렬3. 배열을 join..

TIL/알고리즘 2025.04.09

[Java] 프로그래머스 | 120880 특이한 정렬

📝 TIL- [프로그래머스] 120880 특이한 정렬 제한사항1 ≤ n ≤ 10,0001 ≤ numlist의 원소 ≤ 10,0001 ≤ numlist의 길이 ≤ 100numlist는 중복된 원소를 갖지 않습니다. 입출력 예입력 #1numlist [1, 2, 3, 4,5, 6]n 4 출력 #1[4, 5, 3, 6, 2, 1]🦔 설계 및 시도n을 기준으로 정렬하기 때문에 빼서 절댓값을 한 값을정렬하면 될 거라고 생각을 했다처음에 Map을 쓰려다가, 지난번에 Map은 중복값이 안되는 걸 공부했기에Comparater의 조건을 넣는 구문을 활용하기로 했다. 절댓값 아이디어는 문제를 보자마자 바로 떠올랐는데확실히 자바 문법이 아직 익숙하지 않아서 구현하는 과정이 오래걸렸다 또 문제에서 중요한 건 거리가 똑같을 ..

TIL/알고리즘 2025.04.09

[JAVA] 프로그래머스 | 42748 K번째 수

📝 TIL- [프로그래머스] 42748 K번째 수 제한사항array의 길이는 1 이상 100 이하입니다.array의 각 원소는 1 이상 100 이하입니다.commands의 길이는 1 이상 50 이하입니다.commands의 각 원소는 길이가 3입니다.  입출력 예입출력 #1arraycommandsreturn[1, 5, 2, 6, 3, 7, 4][[2, 5, 3], [4, 4, 1], [1, 7, 3]][5, 6, 3]🦔 설계 및 시도1. commands 전체 길이까지 for문 1번2. 부분 배열을 찾기 위해 index 따라 for문 1번 > 리스트에 저장3. Collections을 사용하여 정렬 4. answer 배열에 담기 > 초기화 따라서 내가 푼 풀이는 다음과 같다class Solution { ..

TIL/알고리즘 2025.04.07

[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