자바 89

[프로그래머스, 자바, 84512번] 모음 사전

풀이해당 문제는 자바로 재귀 문제를 해결해보고자 푼 문제로두 가지 방법을 활용하여 해결해봄우선 첫 번째로는 기본적이며 완전탐색하는 방법으로 모든 조합을 만든 다음 같은 문장을 찾는 방법으로 해결했으며두 번째 방법은 join을 활용해서현재 추가된 배열의 값과 같은 문자열을 찾으면 멈추는 방법으로 해결두 가지 방법 모두 재귀와 백트래킹을 활용하여 해결했음다만 계속 return 사용에 대한 혼동이와서 시간이 걸렸지만이제 해결할 수 있을 것 같다.혼동이 온 이유는 파이썬에서는 return에 대한 타입을따로 정의하지 않다보니 어디부분에선 return 만 사용하고어디부분에선 return {정수타입 변수} 로 하다보니갑자기 혼동이 와서 헷갈렸었다. // 첫 번째 방법import java.util.*;class Sol..

알고리즘 2024.09.04

[프로그래머스, 자바, 12911번] 다음 큰 숫자

풀이그냥 단순하게 해결했으며, 문법적인 것으로 알게된 것은2진, 8진, 16진 변경은 아래와 같다.Integer.toBinaryString() -> 2진Integer.toOctalString() -> 8진Integer.toHexaString() -> 16진그리고 파이썬처럼 문자열 안에 특정 문자가 몇 개있는지 찾는 find()와 같은 함수가따로 없는 듯 하여 아래 코드와 같이 해결할 수 있음을 상기 시킴. class Solution { public int solution(int n) { int n_cnt = find(n); int result = 0; for (int i=n+1; i

알고리즘 2024.09.04

[SWEA, 자바, 1983번] 조교의 성적 매기기

풀이요즘 기본 알고리즘 해결을 위한 언어를 자바로 고정하기 위해SWEA로 기초를 닦으며 이런 저런 공부를 하고 있음.아래 코드는 단순하게 테스트 케이스 만큼 특정 학생의 성적을 조회하는 문제인데뭔가 자바여서 그런지 코드가 더럽긴하다.아래 코드 내용은 별 다른게 없어 해결 방법에 대한 건 생략하지만내림차순 정렬은 Collections.reverseOrder() 메서드로 할 수 있으며,기본 타입 배열을 Collection에 해당하는 배열에기본 값으로 깊은 복사를 하고자 할 땐 Arrays.asList()를 사용하기.그리고 같은 기본 타입 배열에 깊은 복사를 하고자 할 땐 아래의 코드를 사용하기.System.Arrays.copyOf() 첫 번째 인자에는 배열두 번째 인자에는 배열의 길이를 넣기Clone()  ..

알고리즘 2024.08.29

[백준, 자바, 1072번] 게임 (이분 탐색)

풀이해당 문제를 푼 이유는 그냥 이분 탐색 문제여서 풀었으며특징적인 것을 확인했다.확인한 것으로는 무조건 작거나 같은 것을 묶기보단 가변적으로 생각 회로를 열어두는 것이좋을 것 같다는 생각을 했으며, 수학적인 점으로는 분자와 분모가 같은 값으로 더해질 경우 그에 대한 결과 값을 계속해서 커진다는 것. import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] li = Arrays.stre..

알고리즘 2024.08.27

[백준, 자바, 10988번] 팰린드롬인지 확인하기

풀이해당 문제를 푼 이유는정수로 들어온 값을 문자로 변형 후 배열로 만드는 방법에 대해 궁금해서 푼 문제로해결 방법은 아래와 같이 해결할 수 있고 해당 문제는 그 다음의 코드로 해결# 정수를 문자 배열로 변형char[] li = Integer.toString(100).toCharArray(); # 해당 문제 해결 코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); char[] li = br.readLine().toChar..

알고리즘 2024.08.27

[백준, 자바, 2512번] 예산(이분 탐색)

풀이진짜 단순한 이분 탐색 문제로각 지방 예산 요청을 정렬 후 이분 탐색 하여 해결 import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] li = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); ..

알고리즘 2024.08.24

[백준, 자바, 2110번] 공유기 설치(이분 탐색)

풀이뭔가 문제를 제대로 이해하지 못했어서 시간이 좀 더 걸린 문제로문제 해결 방법은 정말 단순하게 이분 탐색 문제인데왠지 모르게 지난 풀이 방법으론 해결 방법에 대한 뎁스가 한 개 더 있는 듯한 느낌이었어서더 꼬이게 되어버림...그리고 이분 탐색의 결과 도출에 대한 것으로 하나 상기된 것은결과가 나왔을 경우 계속해서 탐색할 때같을 경우와 부족할 경우를 함께 묶어 처리를 하는 것을 다시 상기하게 되었음. import java.io.*;import java.util.*;public class _2110 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new I..

알고리즘 2024.08.24

[백준, 자바, 10989번] 수 정렬하기 3 - 도수 정렬(Counting Sort)

풀이뭔가 간단하게 사용하는 sort() 메서드들로는 메모리 초과가 발생하기에 찾아보니도수 정렬이라는 걸 활용해야한다고 했다.그래서 다른 포스팅된 게시글을 확인했을땐 뭔가 어렵게 느껴져서GPT하고 이야기해보니 정말 간단하게해당 값에 대한 인덱스의 값을 카운팅하는 것으로요소간 비교가 아니기에 모든 데이터를 한 번씩만 접근해서범위 조건이 있는 경우 한정하에 굉장히 빠르게 처리가 가능하다는 걸 알 수 있었다.그래서 아래와 같이 코드를 작성하여 해결물론 기존 도수 정렬 방식과는 다르게 원래 방식은 입력 값에 대한 최댓값 - 최솟값 + 1에 해당하는 만큼 배열을 만들어야 했지만값을 받아오는 대로 넣어 처리하고자 하여 최댓값인 10.000에서 0번째 인덱스를 생각하여10.001만큼 크기를 정하고 이후 입력 값에 해당..

알고리즘 2024.08.03

[개발 지식, 자바] 아스키 코드

아스키 코드 -> 문자문자 -> 아스키 코드 변환 방법에 대해선 파이썬 아스키 코드 -> 문자 => chr()문자 -> 아스키 코드 => ord()자바에선 어떻게 하는지 확인해보니형변환만 하면 되는 간단한 방법으로 아래와 같다아스키 코드 -> 문자 =>  (int)public class AsciiExample { public static void main(String[] args) { char ch = 'A'; int ascii = (int) ch; System.out.println("The ASCII value of " + ch + " is: " + ascii); }}문자 -> 아스키 코드 => (char)public class AsciiExample {..

개발 지식 2024.08.02

[개발 지식, 자바] List vs ArrayList vs LinkedList

자바는 따로 교육을 받은 경험이 없어 기초적인 내용 또한 잘 다져놔야 이후 내용을 잘 습득할 것으로 생각하여 포스팅 자바에서 List, ArrayList, 그리고 LinkedList는 자주 사용되는 컬렉션 클래스들로, 각각의 사용 목적과 특징이 다르다. 이들 중 어떤 것을 선택해야 하는지는 주로 사용 시나리오와 성능 요구 사항에 따라 달라짐. 아래는 각 컬렉션 클래스의 주요 특징과 사용 사례애 대한 설명. 1. ListList는 인터페이스로, ArrayList, LinkedList 등 다양한 리스트 구현체들이 이를 구현합니다.List 자체는 객체를 저장하는 순서가 중요할 때 사용됩니다. 일반적으로 List를 타입으로 사용하고, 실제 구현체는 ArrayList나 LinkedList를 사용합니다.List l..

개발 지식 2024.08.01