전체 글 202

백준 2609 자바 - 최대공약수와 최소공배수

문제 문제해결 - 유클리드 호제법을 이용한다 - gcd(a, b) = gcd(b, r) 이므로 b가 0이 될때까지 gcd 메소드를 실행하면 최대공약수를 구할 수 있다 - a * b / c(최대공약수)를 하면 최소공배수를 구할 수 있다 import java.util.Scanner; //최대공약수와 최소공배수 public class B2609 { //최대공약수 재귀 방식 public static int gcd(int a, int b){ if (b==0) return a; //gcd(a,b) = gcd(b,r) 이므로 r을 a%b로 바꿔줌 return gcd(b, a%b); } public static void main(String[] args) { Scanner sc = new Scanner(System.i..

백준 11656 자바 - 접미사 배열

문제 문제해결 - 반복문과 substring 메소드를 활용하면 접미사를 구할수 있다 - Arrays.sort로 배열 정렬 후 출력한다 import java.util.Arrays; import java.util.Scanner; public class B11656 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); int size = str.length(); String[] arr = new String[size]; for (int i = 0; i < size; i++) { arr[i] = str.substring(i, size); } Arrays.sort(arr); ..

링크계층 - MAC protocol

※kocw에서 제공하는 이석복 교수님의 컴퓨터네트워크 수업을 듣고 필기한 내용입니다. 출처를 따로 밝히지 않는 한 전부 해당 수업에서 제공한 자료들이며 제가 작성한 부분에 있어 틀린 부분이 있을 수도 있다는 점 양해바랍니다. 데이터 링크 계층 - 어플리케이션 계층에서는 소켓 대 소켓의 메세지 전송만을 봄 - 전송계층에서는 어떻게 신뢰성 있는 데이터를 전송할건지를 결정함 - 네트워크 계층에서는 어떤 경로를 통해 패킷을 전송할건지 결정함 - 링크계층에서 볼것은 내가 보낸 패킷이 어떻게 다음 게이트웨이까지 갈것인가 - 내가 보낸 패킷이 게이트웨이까지 가는데 전용선이 있는게 아님 - 하나의 게이트웨이에 여러 사용자가 패킷을 보냄 - 패킷이 물리계층을 지나가면서 전자파, 즉 파장으로 변함 - 사람 많은데서 얘기할..

백준 11655 자바 - ROT13

문제 문제해결 - char 형은 아스키코드로 되어있기 때문에 간단하게 += 13을 해주면 된다 - z, Z를 넘어가는 경우는 범위를 벗어나는 경우이므로 범위를 벗어나는 만큼 a, A에서 더해주면 된다 import java.util.Scanner; public class B11655 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); StringBuilder sb = new StringBuilder(); for (int i = 0; i ='a' && c'z'){ int tm..

백준 10820 자바 - 문자열 분석

문제 문제해결 - 문자열을 돌면서 하나씩 체크하면 되는 문제 - 횟수가 주어지지 않기 때문에 읽어오는 값이 null이 될때까지 계속 반복한다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class B10820 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = ""; while ((str = br.readLine()) != null) { int low = 0; ..

백준 10809 자바 - 알파벳 찾기

문제 문제해결 - 아스키 코드와 indexOf 메소드를 활용하여 문제를 풀수있다 - indexOf('a'+i) 에 i++을 해나가면 모든 소문자가 처음 등장한 위치를 구할수있다 import java.util.Scanner; public class B10809 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int[] idxArr = new int[26]; for (int i = 0; i < 26; i++) { idxArr[i] = str.indexOf('a'+i); } for (int i : idxArr) { System.out.print(i + " "); } } }

백준 10808 자바 - 알파벳 개수

문제 문제해결 - 아스키코드를 활용하면 'a' - 'a' = 0 'b' - 'a' = 1 'c' - 'a' = 2 ...... 'z' - 'a' = 25 이렇게 알파벳을 숫자처럼 사용할 수 있다 - 26자리 int형 배열을 만든 후 인덱스에 -'a' 방식으로 접근하면 숫자대신 알파벳을 인덱스처럼 활용할 수 있다 import java.util.Scanner; public class B10808 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int[] cnt = new int[26]; for (int i = 0; i < str.length(); i++) { cnt[str..

백준 1918 자바 - 후위표기식

문제 문제해결 - 기본 원리는 연산자는 스텍에 저장하고, 피연산자는 바로 출력하는 것이다 1. 피연산자일 경우 바로 출력한다 2. ) 일 경우 (가 나올때까지 스텍에 쌓인 연산자를 출력한다, (는 출력하지 않는다 3. ( 일 경우 무조건 스텍에 집어넣는다 4. ( 를 제외한 연산자를 스텍에 집어넣을때, 맨 위에 있는 연산자보다 우선순위가 높을 경우에는 스텍에 바로 집어넣고, 아닐 경우 우선순위가 더 높은 연산자를 먼저 출력한다 import java.util.Scanner; import java.util.Stack; public class B1918 { //연산자 우선순위 정하기 public static int precedence(char c){ if (c=='(') return 0; if (c=='+' ..