Daek_You(275)
-
[SimpleChat] #1. 간단한 1:1 채팅 프로그램 만들기 (with Java Socket)
1. 시작하게 된 계기개인적으로, 옛날부터 네트워크 활용 경험이 부족한 것이 약점이라고 생각해왔습니다. 개발 공부는 만들고 싶은 것을 만들면서 Top-down 형태로 공부해나가라는 말을 많이 봤죠. 저 또한 이에 동의하며, 거창한 건 아니더라도 간단한 기능부터 점차 살을 붙여가며 개발해볼까 합니다. 2. 뭐부터 시작해야하지?..하지만 의욕과 달리, 처음부터 난관에 부딪혔습니다. 자바 언어를 활용해 응용 프로그램을 만들어 본 경험도 없고, 책도 없었습니다. 다행히 저에겐 구글이라는 방대한 지식 창고가 있고, 최근에 고용한 `Claude`라는 멋진 비서가 있죠. Claude에게 간단한 채팅 프로그램을 만들기 위해 뭐부터 시작해야 하는지 물어봤습니다. 저는 아래와 같이 Claude가 알려준대로 학습을 진행해보..
2024.12.12 -
[Tistory] 수학 기호 작성하기 (with Markdown)
1. 마크다운 수학 표시 기호를 사용하고 싶다!티스토리에서 글을 작성할 때 MathJax를 사용하여 수학 기호를 게시글에서 표현하였습니다. 그런데, 사용할 때마다 늘 아래와 같은 기호로 묶어야 해서 불편했죠.\( y = f(x) \) 마크다운(Markdown) 문법에 익숙했던 저는 `$` 기호 하나로만 양 옆에 묶어서 사용하고 싶었습니다. 그래서 이와 관련된 설정을 할 수 없을까 싶어 MathJax 공식 문서를 찾아보았는데, 방법이 있었네요. (이때까지 노가다로 수학 기호 표기했던 저에게 박수..) 2. 필요한 추가 설정구글에 "티스토리 수학 기호 사용법"이라고 검색하면 수많은 블로그에서 이에 대해 잘 설명해주고 계십니다. 대부분의 글들이 다음과 같이, 티스토리 스킨 편집에서 HTML `` 블록 사이에 ..
2024.12.11 -
[BOJ] 8938번 | 사냥꾼 (Java)
🔗문제 보러가기 Solution이분 탐색(Binary Search) 알고리즘으로 풀 수 있습니다. 사대 위치를 저장하는 배열을 오름차순으로 정렬한 뒤, 동물들의 위치를 순회하면서 `L` 사거리 내에 들어오는 사대를 찾으면 됩니다. 즉, 로직의 순서도는 다음과 같습니다. 사대 위치 배열을 오름차순으로 정렬동물들의 좌표를 순회현재 동물의 `x` 좌표와 가장 가까운 사대의 좌표를 탐색 (`y` 좌표는 고정값이기에 상수로 항상 있는 수)탐색한 사대와의 거리가 `L` 이하이면 탐색 종료잡을 수 있는 동물 수 +1하고, 다음 동물 좌표로 순회탐색한 사대와의 거리가 `L`보다 크다면, 현재 동물의 x 좌표에서 사대가 왼쪽에 있는지 오른쪽에 있는지 파악사대가 왼쪽에 있다면 `left = mid + 1`사대가 오른쪽..
2024.08.01 -
[BOJ] 2477번 | 참외밭 (Java)
🔗문제 보러가기 🧑🏻💻풀이 과정 기하학 문제는 많이 풀어보지 않아서 그런가, 생각보다 어려웠습니다. 조금만 더 생각하면 될 것 같은데 시간이 늦어 너무 피곤한 나머지 힌트를 살짝 봤네요... 기본기를 더 탄탄하게 해야겠다는 생각이 든 문제였습니다. 문제에서 나올 수 있는 참외밭의 모양은 ⌈, ⌉, ⌋, ⌊로 총 4가지입니다. 이러한 참외밭은 가로와 세로 모두 가장 긴 길이의 변이 있고, 문제에서 주어지는 정보는 항상 반시계 방향으로 주어집니다. 이것은 가로가 나왔다면 다음은 세로, 세로가 나왔다면 다음은 가로 방향이라는 것을 보장해줍니다. 이러한 정보를 토대로 생각해볼 때, 가장 긴 변의 방향이 만약 가로라면 해당 변의 전변과 후변은 세로 방향이라는 걸 알 수 있습니다. 이때, 이 전변과 후변..
2024.07.30 -
[BOJ] 20056번 | 마법사 상어와 파이어볼 (Java)
🔗문제 보러가기 🧑🏻💻풀이 과정빡구현 문제는 요구사항 별로 메서드를 잘 나눠 구현하는 게 중요하다고 생각하는데, 이렇게 해도 중간에 로직이 잘못되면 디버깅하기가 정말 어렵네요. 저는 파이어볼이 같은 위치에 있는지 파악하기 위한 2차원 Queue 배열, 현재 맵에 존재하는 파이어볼들을 관리하는 Queue 이렇게 2개를 써서 풀었습니다. 큐에서는 파이어볼 클래스 정보를 관리하구요.class FireBall { FireBall(int row, int column, int mass, int velocity, int direction) { this.row = row; this.column = column; this.mass = mass; this...
2024.07.25 -
[BOJ] 12904번 | A와 B (C++)
🔗문제 보러가기 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 👨💻풀이 과정 그리디 방식으로도 풀 수 있다고 하길래, 어떻게 하는지 궁금해서 관련 🔗힌트 글을 찾아봤습니다. 이런 생각을 할 수 있다니... 대단하네요. 세상에는 천재가 너무 많습니다. 기존 문자열인 S에서 목표로 하는 문자열 T로 변환하는 경우의 수는 너무 많은데 비해, 그 경우의 수가 다 올바른 길도 아닙니다. 그렇기에, T에서 S로 반대로 변환하는 것이 아이디어더군요. T에서 S로 변환해 나가는 과정은..
2024.03.28