no image
[Algorithm] 중복문자 제거하기
설명소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.입력 첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다.출력 첫 줄에 중복문자가 제거된 문자열을 출력합니다.예시 입력 1 ksekkset예시 출력 1kset Solutionpackage String;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedHashSet;import java.util.Set;public class Main { public static String S..
2025.02.15
no image
[Algorithm] 문자 찾기
문자 찾기설명한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.입력 첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.문자열은 영어 알파벳으로만 구성되어 있습니다.출력 첫 줄에 해당 문자의 개수를 출력한다.예시 입력 1 Computercoolerc예시 출력 12 Solutionpackage String;import java.util.Scanner;public class Main { public static int Solution(String input, char target) { // 둘다 대문자화 해서 비교 inpu..
2025.02.15
no image
[Java] 채팅 프로그램 소켓 연결 구현 1 - 1 대 1 통신을 해보자
순수 자바로 로컬 서버에서 실행할 수 있는 채팅 프로그램을 구현하는 것을 목표로 했다.연결하고 1대1 대화가 가능하도록 먼저 구현하고 차차 n:n 채팅이 되도록 리팩토링 해보자.서버 코드package chat;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;import static util.MyLogger.log;public class Server { private static final int PORT = 13423; public static v..
2025.02.09
no image
[Java] 두줄로 이해하는 객체 직렬화, 역직렬화
자바에서 객체 직렬화 (Serialization)는 메모리에 있는 객체 인스턴스를 바이트 스트림으로 변환하여 파일에 저장하거나 네트워크를 통해 전송할 수 있는 기능이다반대로 역직렬화 (Deserialization) 은 바이트 스트림을 다시 객체화 시키는 작업을 의미한다. 근데 요새는 XML, JSON , 데이터 베이스 쓰니까 잘 안쓰긴함ㅋㅋ그래도 XML, JSON , 데이터 베이스 같은 저장 방식의 조상님격이라 한번 알아봤다!import java.io.*;import java.util.ArrayList;import java.util.List;/** * Object 스트림은 컬렉션을 통으로 쓰고 통으로 읽는다 * writeObject() , readObject() */public class ObjectMe..
2025.01.28
no image
LG 유레카 SW 교육 2기 전공자 불합격(예비) 후기
기말고사가 끝나자마자부터 호기롭게 준비했던 LG 부트캠프 유레카 교육에 예비 - 불합격한 후기를 적어본다.중간고사 - SQLD - 기말고사 - 유레카 준비 라는 과정을 이어오며 쉴새 없이 달렸던 24년도 말 ~ 25년 초 인것 같다.이번 유레카 선발과정에서 진행한 서류 + 코테 + 면접 모두 인생에서 처음 해본 소중한 경험이었다.주변에서 나한테 불합격 해서 슬프지 않냐라는 질문을 들으면 사실 그렇게 크게 슬프지 않다라고 답한다. (사실 좀 아쉽긴 함ㅋ)내가 열심히 준비했는데도 좋은 결과를 얻지 못한 것은 정말 아쉬웠지만, 크게 동요되지 않으려고 정말 노력하고 있다. 또한, 이번에는 아쉬웠으나 언젠가는 나의 진가가 들어날 상황도 충분히 있다고 생각하려고 하고 있다.그리고 주변에 장난스런 분위기와 함께 "그..
2025.01.10
no image
[Java] 예외처리 - 부모 자식 관계
자바는 모든 것이 객체다. 예외도 객체고 스레드도 객체고 너도 객체고 나도 객체다.오늘은 간단히 예외처리의 부모자식 관계에 대해 포스팅하겠다! 예외도 위 아래가 있어요예외도 상위 타입의 예외가 있고, 그것을 상속받는 하위 타입의 예외가 있다.본 포스팅에서는 뭐가 상위 타입 예외이고 뭐가 하위 타입 예외인지에 대한 것이 중요한게 아니기 때문에, 설명은 패스한다. 이번 주제에 대한 쉬운 이해를 위해 아래와 같은 코드가 있다고 가정하자(실제 동작하는 코드는 아님)//부모 클래스class Parent { void method() throws InterruptedException { // ... } } //자식 클래스class Child extends Parent { @Overr..
2025.01.02
no image
[Algorithm] 배열 입력이 [1,2,3](대괄호)와 같을 때
최근에 본 코테에서 주어진 입력방식대로 입력을 받고 처리하는 방법을 몰라서 틀린 문제가 있다.나는 언제나 코테를 준비하며 콘솔 입력 형식만 고집하며 연습해왔어서, [1,2,3] 이런식으로 입력 받으면 어떻게 처리해야할지 몰랐었다(진짜 몰라서 리스트 쓰고 난리났었다ㅡㅡ..)알고리즘은 다 구현하고 출력까지도 모든 테스트 케이스와 동일했지만, 입력이 대괄호에 감싸져 입력되는 경우에 어떻게 처리 되는지 몰라서 해결방법을 찾고, 두번 다시는 같은 실수를 반복하지 않겠다고 다짐하고자 이 글을 작성한다.입력 배열에 대한 대괄호를 제거하기정규표현식을 활용한 문자 제거 + 스트림 활용을 활용하여 문제를 해결할 수 있었다.절차는 아래와 같다.0. 입력은 String type으로 받기1. replaceAll() 메서드를 통..
2024.12.28
no image
[잡담] 2024 회고
2024를 보내며2024년도는 좀 나에게 있어 크고 작은 이벤트들이 많이 있었던 것 같다.첫째로, 개발 공부의 어려움을 느낄 수 있었던 해였던 것 같다.나는 원래 학교 공부를 상당히 열심히 했다. 그리고 그 결과도 항상 좋았다. 근데 어느날 코드를 치려고 하니까, 한두줄도 적지 못하는 나를 보고 좀 큰 충격을 받았다.나는 학교만 열심히 다니면 좋은 직장을 가질 수 있다고 생각했고, 정말 치열하게 노력했다.하지만 사실 나는 대단한 착각을 하고 있었고, 곧바로 어떤 공부를 해야할지 알아보며 언어 공부부터 차근차근 시작했다.사실 처음부터 스프링을 건드려봤는데, 뭐 자바를 모르니 한개도 이해가 안갔다. 억지로 공부하는 것도 한계가 있었다. 그 이후 현재까지도 언어 공부를 하면서, 늘 모르는 부분에 대해서는 복습..
2024.12.28
no image
[Algorithm] 팰린드롬 수 - (백준 1259)
문제어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.입력입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.출력각 줄마다 주어진 수가 팰..
2024.12.26