분류 전체보기 202

백준 2745 자바 - Base Conversion

문제 문제해결 - A진법을 10진법으로 바꾼 후 다시 B진법으로 바꾸면 된다 import java.util.Scanner; import java.util.Stack; public class B11576 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int size = sc.nextInt(); // 1. A진법 -> 10진법 int tmp = 0; //A진법을 10진법으로 바꾼 숫자 int idx = size-1; //승수 for (int i = 0; i < size; i++) { int num = sc.nextInt(); tmp +..

링크계층 - 무선이동네트워크2

※kocw에서 제공하는 이석복 교수님의 컴퓨터네트워크 수업을 듣고 필기한 내용입니다. 출처를 따로 밝히지 않는 한 전부 해당 수업에서 제공한 자료들이며 제가 작성한 부분에 있어 틀린 부분이 있을 수도 있다는 점 양해바랍니다. IEEE 802.11 frame - 무선 인터넷은 free 주파수 대역을 사용함 - 거기서 채널을 나눠서 사용 - 다른 채널끼리는 충돌이 안남 - 같은 채널을 쓰는 AP끼리는 다른 AP여도 똑같이 CSMA/CA 방식으로 경쟁해서 데이터를 보냄 - 무선 인터넷 프레임의 헤더에는 address 필드가 4개나 있음(1개는 신경 X) address1: 데이터를 받을 AP의 MAC 주소 address2: 데이터를 보내는 host의 MAC 주소 address3: 데이터를 받을 라우터의 MAC ..

백준 2745 자바 - 진법 변환

문제 문제해결 - 어떤 진수든 10진수로 바꾸는 방법은 똑같다 - 각 자리의 10진수 숫자 * 진수의 각 자리수 제곱을 모두 더한 값이다 ex) 2진수 1101 일때 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 13 import java.util.Scanner; //b진수 n 을 10진수로 바꾸기 public class B2745 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String n = sc.next(); int b = sc.nextInt(); long result = 0; int idx = 0;// 승 0, 1, 2, 3 .... int num = 0;//계산하기 위해 각 자리 숫자를 ..

백준 11005 자바 - 진법 변환2

문제 문제해결 - n과 b의 나머지 연산 결과를 stack에 담고, n을 b로 나누는 방식으로 진수 변환을 한다 - 출력할때 두자리수 결과는 영어 알파벳으로 치환한다 ex) num = 35 일때 num + 55 = 90 90의 아스키코드표는 'Z' import java.util.Scanner; import java.util.Stack; public class B11005 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long n = sc.nextInt(); int b = sc.nextInt(); //0~35 범위에 있는 두자리 숫자가 나올 수 있으니 StringBuilder보다는 stack 사용 Stack s..

백준 17103 자바 - 골드바흐 파티션

문제 문제해결 - 에라토스테네스의 체로 입력 조건인 1,000,000까지의 소수를 구한다 - 입력받은 T번만큼 N/2씩 반복문을 돌면서 해당 숫자가 소수면서 N에서 소수를 뺀 값이 소수면 count를 1씩 증가시키면 된다 import java.util.Scanner; public class B17103 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); boolean[] sosu = new boolean[1000001]; sosu[0] = true; sosu[1] = true; for (int i = 2; i

백준 2089 자바 - -2진수

문제 문제해결 - 2진수를 구하는 것과 똑같이 구하되 나머지 연산은 -2로 하고 나누기 연산은 ceil을 통해 올림 연산을 한다 import java.util.Scanner; // -2진수 public class B2089 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); StringBuilder sb = new StringBuilder(); if (n==0) System.out.println(0); else { while (n!=1){ //기존 2진수 구하는 방법 // sb.append(n%2); // n /= 2; //-2진수 구하는 방법 sb.append(Math.ab..

백준 1212 자바 - 8진수 2진수

문제 문제해결 - 8진수의 경우 경우의 수가 8가지 밖에 안되기 때문에 switch문을 사용해서 각 자리수를 2진수로 변환하였다 - 맨앞 2자리가 0이 올수도 있기 때문에 0일 경우 삭제하는 로직을 추가하였다 import java.util.Scanner; public class B1212 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); //8진수 -> 2진수 모든 경우의 수 구하기 StringBuilder sb = new StringBuilder(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i..

백준 1373 자바 - 2진수 8진수

문제 문제해결 - 2진수를 바로 8진수로 바꾸는 방법을 그대로 코드로 작성하였다 1. 자리수가 딱 3에 나누어 떨어지도록 0이나 00을 추가한다 2. 3자리씩 끊어서 0번째에는 2^0, 1번째에는 2^1, 2번째에는 2^2를 곱하고, 그 결과를 더한다 3. 각 계산 결과를 이어서 붙이면 8진수가 나온다 import java.util.Scanner; public class B1373 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); // 3자리씩 끊을 수 있도록 자리수 맞추기 int size = str.length(); if (size%3==2) str = "0" ..

링크계층 - 무선이동네트워크1

※kocw에서 제공하는 이석복 교수님의 컴퓨터네트워크 수업을 듣고 필기한 내용입니다. 출처를 따로 밝히지 않는 한 전부 해당 수업에서 제공한 자료들이며 제가 작성한 부분에 있어 틀린 부분이 있을 수도 있다는 점 양해바랍니다. Wireless and Mobile Network - wireless: 선이 없는, 무선 - mobile: 이동가능한 - 유선과 무선의 MAC 프로토콜은 차이가 있음 - 유선은 링크라는 매체를 공유해서 사용, 무선은 공기라는 매체를 공유해서 사용함 - 무선일 경우 내 컴퓨터에서 google 서버로 통신이 갈때 전체가 무선이 아닌 한 홉만 무선임 - 유선은 안정적인 케이블로 연결되어 있어 외부의 노이즈로부터 보호됨 그래서 연결 거리에 큰 영향을 받지 않음 - 무선은 거리에 큰 영향을 ..