[Java] 자바 네트워크 채팅 프로그램 구현 ( 소켓, 유니 캐스팅 )
·
Java/코딩테스트 연습 & 실습
유니 캐스팅이란 서버와 클라이언트가 일대일로 통신하는 개념이다. 자바 소켓을 이용해서 유니 캐스팅 채팅 프로그램을 구현해 보았다. 구조 소스코드 📝 UnicastServer import java.io.*; import java.net.*; public class UnicastServer { private ServerSocket serverS; private UnicastServerThread ust; public UnicastServer(int port) { //포트번호 try { serverS = new ServerSocket(port); } catch(IOException ioe) { ioe.printStackTrace(); System.exit(0); } while(true) { try { Syst..
[Java] 자바 GUI AWT 사용법 ( 간단한 채팅 프로그램 구현 )
·
Java/자바 이론
AWT(Abstract Window Toolkit)는 GUI 프로그램을 제작하기 위해 자바에서 제공하는 라이브러리를 모아놓은 것이다. 운영체제가 제공하는 UI를 사용하기 때문에 플랫폼에 의존적이고 구성요소가 무겁다는 특징 때문에 요즘은 거의 사용하지 않는다고 한다. 하지만 비교적 쉽고, Java Swing이 AWT 기반이기 때문에 간단하게 한번 살펴보는 것도 좋을 듯하다. AWT 계층 및 구성요소 1. Container 프로그램창의 역할을 한다. 이 컨테이너 위에 컴포넌트들이 올라간다. 2. Component 화면을 담당하는 구성요소들이다. ( 버튼, 텍스트 필드 등 ) 3. Event 윈도우 프로그래밍에서 어떤 특정한 행동이 발생 한 그 자체를 의미한다. (ex 버튼 클릭 등) 이벤트 소스 : 이벤트가..
[Python] 학생 성적관리 프로그램 (파일 사용)
·
Python
1. 프로그램 실행 시 파일의 내용을 all_std 리스트에 불러온다. 2. (1. 입력 2.출력 3.검색 4.수정 5.삭제 6.종료) 를 진행한다. 3. 프로그램 종료 시 all_std의 내용을 파일에 저장한다. (덮어쓰기) import pickle import sys all_std = [] #파일 전체 내용 로드 함수 def pickleLoadAll(): with open('DB.p', 'rb') as file: while True: try: data = pickle.load(file) except EOFError: break all_std.append(data) #실행시 파일 내용 불러옴 pickleLoadAll() print("DB :",all_std) #메인 while(True): print('..
[Python] 파이썬 지뢰찾기 구현 (2차원 리스트)
·
Python
파이썬 코딩도장 23.7 심사문제 지뢰찾기 구현 * 문제설명 표준 입력으로 2차원 리스트의 가로(col)와 세로(row)가 입력되고 그 다음 줄부터 리스트의 요소로 들어갈 문자가 입력됩니다. 이때 2차원 리스트 안에서 *는 지뢰이고 .은 지뢰가 아닙니다. 지뢰가 아닌 요소에는 인접한 지뢰의 개수를 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 여러 줄을 입력 받으려면 다음과 같이 for 반복문에서 input을 호출한 뒤 append로 각 줄을 추가하면 됩니다(list 안에 문자열을 넣으면 문자열이 문자 리스트로 변환됩니다). 2차원 배열을 이용해서 배열의 범위를 벗어나지 않도록 잘 조건을 줘서 8방향을 탐색하면 되는 문제다. row, col = map(int,inpu..
[Python] 로또 당첨번호 (별찍기 예제)
·
Python
로또 당첨번호를 별찍기를 활용해 출력한다. import random win_number = random.sample(range(1,46),7) def first(arr): print("====1등 당첨번호====") print(arr[0:6]) def second(arr): print("====2등 당첨번호====") for i in range(0,len(arr)-1): for j in range(0, len(arr)): if(i==j): print('*', end=' ') else: print(arr[j], end=' ') print() def third(arr): print("====3등 당첨번호====") for i in range(0,len(arr)-1): for j in range(0, len(..
[Python] 파이썬 별찍기 for, while문
·
Python
1. 사각형 #for문 for i in range(3) : for j in range(4): print('*', end ='') print() #while문 i, j = 0, 0 while i
[Python] 파이썬 리스트, 튜플, 딕셔너리 사용법
·
Python
리스트 [ ] : 말 그대로 목록 이라는 뜻으로 값을 일렬로 늘어놓은 형태다. 튜플 ( ) : 리스트와 비슷하지만 저장된 요소를 변경, 추가, 삭제가 불가능하다. 딕셔너리 { } : 키 : 값의 형식을 가지고 있다. 연관된 값을 묶어서 저장하는 자료형이다. 1. 리스트 ( list ) 리스트는 문자열, 실수, 정수, 불 등 모든 자료형을 저장할 수 있다. 대괄호 [ ]를 사용하여 선언한다. a = [10, 'superman', True] 1. 주요 메서드 메서드명 기능 예시 append(요소) 요소 하나를 추가 list.append(10) extends(리스트) 리스트를 연결하여 확장 list.extend( [30,40] ) insert(인덱스, 요소) 특정 인덱스에 요소 추가 list.insert(2,..
[Java] 자바 두 개의 큐(Queue)로 스택(Stack) 구현하기
·
Java/자바 이론
https://hyunki99.tistory.com/26 이전 글과 비슷하게 2개의 큐로도 스택을 구현할 수 있다. 큐는 많이 사용되는 자료구조 중 하나이다. 먼저 들어온 것이 먼저 나오는 구조로서 FIFO (First In First Out)의 형태를 띈다. 2개의 큐를 활용해서 스택을구현하는 방법을 알아보자. 1. 원리 1. 메인 큐와 임시 큐를 준비한다. 2. 메인 큐에 1개의 원소가 남을 때까지 dequeue하고, 임시 큐에 넣는다. 3. 마지막 남은 1개의 원소는 result 변수에 저장한다. 4. 임시 큐에 남아있는 원소들을 다시 메인 큐로 이동시킨다. 5. result를 리턴한다. 2. 예제코드 import java.util.LinkedList; import java.util.Queue; c..