본문 바로가기

알고리즘 문제 풀이38

p768) 5번 문제 - 시간 서버를 만들어 Client에게 시간을 전송해라(Thread이용) 1초에 한번 시간이 전송 되게 만들었음 Server에 ThreadTime 클래스를 생성 여러 사용자가 동시에 시간을 받을 수 있게 만들었음 - 생성자로 socket 매개변수 전달 받도록 진행 - ThreadTime tt = new ThreadTime(socket); 결론적으로 NTP 서버를 만들었음 클라이언트 측 코드 import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class TimeClient { public static void main(String[] args) { try { Socket socket = new Socket("14.37.56.228",9000); while(true) { Sy.. 2022. 4. 14.
p768) 4번 문제 - 영어 단어를 보내 한글로 번역하시오(Thread) - TCP Socket 통신 해야함 - JTextField 에 입력 값을 JTextField 로 출력 - 영어 단어를 한글로 번역 - 여러명의 클라이언트들이 동시에 사용할 수 있어야함 - 서버 측에 Thread 객체를 생성하여 매개변수로 해당 정보를 담는 socket을 전달해야함. Client 코드 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.util.Arrays; import java.util.Scan.. 2022. 4. 14.
p596)10번 문제 - 로또 번호 생성 (TreeSet 사용) 로또번호를 생성하시오. contains()함수로 개별 요소 중복 값 확인 TreeSet을 이용하여 정렬 및 중복 값 제거 로또번호 6개 출력 Random r = new Random(); TreeSet ts = new TreeSet(); int cnt=0; while(true) { int num = r.nextInt(45)+1; if(ts.contains(num) == false) { ts.add(num); cnt++; if(ts.size()>=6) { break; } } } System.out.println(ts); 2중 루프로 로또번호 6개 * 6줄 출력 TreeSet ts = new TreeSet(); ArrayList list = new ArrayList(); for (int i=0; i=6) { .. 2022. 4. 9.
p596)9번 문제 - 심사위원 10명의 점수를 입력 받아라(최고점수, 최저점수 제외) 10명의 점수를 입력받고 점수의 합을 구해라. (단, 최고 점수와 최저 점수는 제외) ArrayList n = new ArrayList(); Scanner sc = new Scanner(System.in); for (int i=0 ; i 2022. 4. 9.
p595) 문제 7번 - 국가를 입력하여 수도를 출력하시오(Map 사용) 사용자로부터 국가를 입력받아 수도를 출력하시오. (국가 이름은 Key로 하고 수도를 value) 결과 값 HashMap map = new HashMap(); map.put("USA", "Washington"); map.put("Japan", "Tokyo"); map.put("China", "Beijing"); map.put("UK", "London"); map.put("Korea", "Seoul"); System.out.print("국가의 이름을 입력하시오>> "); Scanner sc = new Scanner(System.in); String country = sc.next(); System.out.println(country+"의 수도: " +map.get(country)); 2022. 4. 9.
p595) 8번 문제 - 이름이 등장하는 횟수를 Map에 저장해보자 각 이름 성의 개수를 출력해라. names[i] 키를 가져와서, 해당 키 값이 null이라면 1을 넣고 null이 아닐 때 (이미 성씨가 들어가 있을 경우) +1을 해서 카운트하는 개념 String names[] = {new String("kim"), new String("Choi"), new String("Park"), new String("kim"), new String("kim"), new String("Park"), new String("Park")}; HashMap map = new HashMap(); for (int i=0; i 2022. 4. 9.
p370) 2번문제 - 정수 4개를 아래와 같이 입력하고 합을 구해라 (try~catch) 4개의 정수를 입력 받고 합을 계산해라 정수 값 이외의 값이 들어오면 예외처리 해라 10 20 30 40 정수들의 합은 100 try~catch문을 이용한 예외처리 진행 try { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); String[] spl = input.split(" "); int sum=0; for (int i=0; i 2022. 4. 7.
p370) 1번 문제 - 문자열을 입력 받아 아래와 같이 출력하시오 문자열의 split()메소드를 이용하여서 문자열을 단어로 분리한다. 공백을 기준으로 split 하고 카운트를 매긴다 문자열을 입력하시오: This is a house This, is, a, house 모두 4개의 단어가 있습니다. Scanner sc = new Scanner(System.in); System.out.println("문자열을 입력하시오:"); String input = sc.nextLine(); String []spl = input.split(" "); int i=0; for (i=0; i 2022. 4. 7.
p216)MiniProject - 책 정보 저장 책 정보는 저장 및 검색하는 프로그램 작성 아래와 그림과 같은 내용을 출력하게 끔 만들어보자 1. Book 클래스를 생성하여 작업 class Book { String title;//도서명을 위한 맴버변수 int score;//평점을 위한 맴버변수 static int count;//모든 도서의 수를 저장하기 위한 클래스 변수 public Book(String title, int score) {//생성자 super(); this.title = title; this.score = score; count++; } public Book() { super(); // TODO Auto-generated constructor stub count++; } @Override public String toString() {.. 2022. 4. 6.
p182) 주사위 게임 주사위의 합이 2가 되면 탈출하고 2가 나오는데 걸린 횟수를 출력해라 --- 출력 값 --- a1> 1 a2> 1 count 5 class Dice class Dice{ private int value; public int getValue() { return value; } public void setValue(int value) { this.value = value; } public Dice() { value=0; } } Main Dice dice = new Dice(); Random r = new Random(); int n = 0; int cnt=1; int a1=0; int a2=0; while(true) { n = r.nextInt(6)+1; dice.setValue(n); a1=dice.get.. 2022. 4. 4.
p123 ) MiniProject - 숫자 추측 게임(정수 맞추기) 사용자가 정수 하나를 입력하여 프로그램이 가지고 있는 정수를 맞추기 입출력 값 int collectNumber = 2; // 맞춰야 할 정수 Scanner sc = new Scanner(System.in); int inputNumber=0; int loopCount =0; while(true) { System.out.print("정답을 추측하여 보시오: "); inputNumber = sc.nextInt(); if (loopCount==7) { System.out.println("기회 초과입니다. 틀렸습니다"); break; } if(collectNumber == inputNumber) { System.out.println("축하합니다"); System.out.println("inputNumber: "+.. 2022. 4. 3.
p131) 15번 문제 - 3 x 5의 2차원 배열을 생성하고 5개의 난수를 배치 랜덤한 인덱스 자리에 5개의 숫자 1을 배치시켜야함 k=5 일때 탈출 int mat[][] = new int[3][5]; int k=0; Random r = new Random(); while(true) { if (k==5) { break; } int rows = r.nextInt(3); // 0, 1, 2 int cols = r.nextInt(5); // 0, 1, 2, 3, 4 if (mat[rows][cols] != 1) { mat[rows][cols]=1; k++; } } System.out.println("k: "+k); // 출력문 for (int i=0; i 2022. 4. 1.
(Java) 2차원 배열 합 구하기 5행 5열의 정수형 2차원 배열을 생성하고, 1부터 1씩 증가한 값을 구해라. 조건 1: 맨 마지막 열에는 각 행의 합이 누적 되도록하고 조건 2: 맨 마지막 행에는 각 열의 합이 누적되도록 함 조건 3: 그리고 마지막 행 열에는 모든 요소의 총 합이 누적 되도록 함 //5행 5열의 정수형 2차원 배열을 생성하고, 1부터 1씩 증가한 값을 저장 //조건 1: 맨 마지막 열에는 각 행의 합이 누적 되도록하고 //조건 2: 맨 마지막 행에는 각 열의 합이 누적되도록 함 //조건 3: 그리고 마지막 행 열에는 모든 요소의 총 합이 누적 되도록 함 // 0 1 2 3 4 // 0 [1][2] [3] [4] [10] 1+2+3+4 = 10 // 1 [5][6] [7] [8] [26] // 2 [9][10] [11.. 2022. 4. 1.
p130) 12번 문제풀이 - 성적 입력 후 합계 및 평균 구하기(ArrayList사용) ArrayList ArrayList ArrayTest= new ArrayList(); ArrayTest.add(입력 값); //동적으로 배열을 계속 넣을 수 있음 ArrayTest.get( i ) // 넣었던 입력 값을 배열의 값을 가져옴 ArrayTest.size( ) // 배열의 크기 반환 성적을 입력 받아 합계, 평균을 출력하시오 성적을 입력 받아 합계, 평균을 출력하시오 -1이 나오면 성적 입력 stop 입력 값 & 출력 값 Scanner sc = new Scanner(System.in); ArrayList n = new ArrayList(); int data; while(true){ System.out.println("성적을 입력하세요"); data = sc.nextInt(); if (data .. 2022. 4. 1.
Java) 최고 점수 구하기( 중복 최대 값 포함 ) 1. 최고 점수를 구하기 2. 최고 점수를 받은 학생의 이름 구하기 3. 최고 점수가 중복 될 경우 해당 학생 명 모두 출력 (100점이 3명이면 3명의 이름 모두 출력 --- 출력 --- max: 100 홍길동 이순신 강감찬 동일 최고 점수 카운트 3 String []name= {"홍길동", "유관순", "이순신", "김유신", "강감찬"}; int []score = {100, 40, 100, 70, 100}; int max=score[0]; for (int i=1; i max) { max=score[i]; } } int j=0; int []n = new int[score.length]; for (int i=0; i 2022. 4. 1.
반응형