인기 게시물
-
개발
[JAVA] 산성비 게임
어릴 적 학교 컴퓨터실 한컴타자연습에서 많이 하던 산성비 게임이다. ○ 단어는 words.txt 파일을 읽어서 랜덤으로 가져온다. ○ 제한시간 내에 떨어지는 단어를 바르게 입력하면 '성공' 메세지를, 시간이 모두 지나면 '시간초과실패' 메세지를 좌측 상단에 출력한다. ○ '그만' 을 입력하여 종료한다. 코드 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import java.io.*; public class eleven extends JFrame{ private MyPanel panel=new MyPanel(); private JPanel jp; private JTextField jt; privat..
-
개발
[C#] 서버 - 클라이언트 1 : N 비동기 채팅
서버에 클라이언트를 여러개 연결할 수 있고, 한 클라이언트가 메세지를 전송하면 서버는 해당 메세지를 연결된 모든 클라이언트에 Broadcast 한다. 클라이언트마다 메세지 수신을 위한 스레드가 동작하는데, 스레드가 끝나면 프로세스도 끝나는 걸 방지하기 위해 배경 스레드로 설정한다. 서버는 연결된 클라이언트마다 소켓과 스레드를 생성하여 관리한다. Server (Console) using System; using System.Collections; using System.IO; using System.Text; using System.Threading; using System.Net; using System.Net.Sockets; namespace ConsoleServer { class Program { s..
-
문제
[백준 / JAVA] 16235. 나무 재테크 (G3)
https://www.acmicpc.net/problem/16235(언제 고쳐줘요...) 개인적으로 가독성이 안 좋은 문제라고 생각한다. 코드를 다 짜고 틀려서 확인해보니 모든 땅 최초 양분이 5라는 조건이 문제 맨 위에 있더라...제발 문제 컨셉 적는 공간과 조건 적는 공간은 분리해줬으면 한다.그와 별개로 문제 자체는 PriorityQueue로 2차원 배열을 만들어서 나무 나이만 집어넣어도 가볍게 풀 수 있다. 봄과 여름 함수를 따로 구현하면 봄에 죽은 나무 리스트를 여름한테 넘겨줘야 하는 문제가 발생는데, 봄을 두 과정으로 쪼개고 중간에 여름을 끼워넣어 한번에 구현했다. 원래 메소드는 구현한 최신순으로 배치하는데 이번엔 문제 컨셉에 맞게 계절 순으로 배치해봤다. import java.util.*;i..
- Stamps [C#, JAVA] n이하의 소수 리스트 소수는 알고리즘 문제의 단골 손님인데, 보통 시간 초과에 막히는 문제가 많다. 따라서 소수 판별 시간을 줄이는 것이 일순위인데 아래 코드에선 소수의 두 가지 성질을 이용했다. 1. 어떤 수를 그 수의 제곱근보다 작은 소수들로 나눴을 때 나누어 떨어지지 않는다면 그 수는 소수이다. 2. 2를 제외한 모든 짝수는 소수가 아니다. 더 빠른 방법을 찾을 시 수정 using System; using System.Collections.Generic; class Program //사용 예 { static void Main(string[] args) { Prime p = new Prime(); p.makePrime(100); List list = p.getList; foreach (long l in list) Cons..
-
개발
[LabVIEW] TCP 통신을 이용한 파일 전송 시스템
LabVIEW와 TCP 통신을 이용하여 클라이언트에서 서버에 접속 후 서버의 저장소의 파일리스트를 가져오고 파일을 선택하여 다운로드 받는 프로그램이다. 사실 구현할 기능이 좀 더 있었는데 랩뷰만 잡고있을 수 없어 꼭 필요한 기능을 모두 구현하고 마무리했다. ※ 요구사항 서버 ○ 클라이언트 연결 상태를 알려줍니다. ○ 클라이언트의 입력 수신 확인을 위해 Echo를 송신합니다. ○ 클라이언트로부터 업데이트 명령을 수신받으면, 파일 저장소의 파일 리스트를 송신합니다. ○ 클라이언트로부터 다운로드 명령과 해당 파일 경로를 수신받으면, 해당 파일을 송신합니다. 클라이언트 ○ 서버 연결 상태를 알려줍니다. ○ 업데이트 버튼을 클릭하면, 서버로부터 저장소의 파일 리스트를 수신하여 출력합니다. ○ 파일 리스트에서 파일..
-
개발
[C#] 지하철 최단거리
데이터 라벨링 알바가 왜 있는지를 알 것 같은 프로그램. 플로이드 알고리즘으로 최단 거리를 계산한다. 문제는 모든 역마다 다른 역에 대한 거리 정보를 입력해줘야 되기 때문에 (역의 개수)^2 크기의 2차원 배열을 노선도를 보면서 입력해야 한다. 심지어 노선이 교차되는 역과 그 주변역은 예외로 처리 해줘야 되기 때문에 반복을 사용한 입력도 힘들다(아래 프로그램도 역이 16개인데 10개역이 예외처리된다). '이거 간단하게 하는 법 없나?' 하고 비슷한 코드 찾아보다가 배열 [101][101]짜리 선언한거 보고 바로 수작업했다. Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Dat..
최근 게시물
-
자격증, 세미나 등등 ADsP 합격 제45회 ADsP에 합격했습니다. 빅분기가 있는 제가 굳이 이 자격증을 취득한 이유는 바로바로... 회사에서 돈을 주기 때문입니다.싸피 시절 B형 취득에 실패해서 100만 원을 받지 못한 기억이 나네요. 점수는 생각보다 낮았습니다. 분명 시험 때 문제가 너무 빨리 풀려서 고득점을 예상했는데 그냥 빠르기만 한 거였습니다. 책도 나오면서 버렸는데 떨어졌으면 흑역사로 남았겠네요. 공부는 아래 이지패스 교재로 했습니다. 20일 과정으로 되어있는데 제 기준 1일 분량에 30분 정도 걸려서 4~5일 몰아서 공부하기 좋았습니다. 컴퓨터만 하다 보니 책으로 공부하는 자세(물리)를 유지하는 게 쉽지 않은데요, 모니터와 달리 책은 다크모드가 없어 눈이 금방 피곤해지고 고개를 숙여야 되니 목도 아픕니다. 그래서 핵심을..
-
자격증, 세미나 등등 AWS Summit 2025 후기 서울 코엑스에서 열린 AWS Summit 2025에 참가했습니다. 5월 14일부터 15일까지 진행됐는데 저는 14일만 참가했습니다. 대학교 강의처럼 시간대별로 다양한 분야에 대한 강연 + 엑스포 형식의 기업 부스 공간이 동시에 진행되는데 신선하고 재밌었습니다. 이번 행사 등록 인원은 4만명으로 추산되며 강연 당 정원은 천 명 미만이기에 듣고 싶은 강연을 못 듣는 상황도 발생할 수 있습니다. 처음에 들어가면 아래 장소에서 명찰을 수령하는데 뭔가 클럽같습니다. 동시간에 동일 홀에서 진행되는 강연도 존재하는데 좌석에 배치된 헤드셋의 버튼을 통해 채널을 변경하여 원하는 강연의 음성을 청취할 수 있습니다. 강연 외에도 여타 기술 엑스포같은 기업 부스 공간도 존재합니다. 사람이 정말 많기에 동선을 잘 짜셔야..
-
기타 조회수 2만 기록용
-
공부 [Oracle] 월의 첫째 날, 마지막 날, 일자 리스트, 요일 오래된 쿼리들을 보면 무식하게 반복되는 구조를 가진 것들이 있다. 예를 들면 월 내의 일자 반복인데 아래 예시를 보자. 몇천줄 넘어가는 쿼리들 까보면 다 이런 식이라 한숨부터 나온다. 그나마 일자 반복은 아래 쿼리들을 사용하면 줄일 가능성이라도 있다. 월의 첫째 날을 구하는 쿼리이다.SELECT TRUNC(TO_DATE('', 'YYYYMM')) AS FIRST_DAY FROM DUAL; 월의 마지막 날은 더 간단하다.SELECT LAST_DAY(TO_DATE('', 'YYYYMM')) AS END_DAY FROM DUAL; 일자 리스트는 LEVEL을 사용하여 출력한다. 레벨 범위를 설정하는 방법은 여러 가지가 있는데, 난 아래 방법이 가장 직관적인 것 같다.SELECT TRUNC(TO_DATE('',..