본문 바로가기

java32

최대공약수(GCD) 와 최소공배수 (LCM) 최대공약수(GCD : Greatest Common Divisor) 최대공약수는 줄여서 GCD라 불림. 두 수 A,B의 최대공약수 G는 A,B의 공통된 약수 중에서 가장 큰 정수. (약수: N을 나눌수 있는 수) 최대공약수를 빠르게 구하는 방법 - 유클리드 호제법을 사용 GCD(a,b) = GCD(b,r) r이 0이면 그 때 b가 최대 공약수가 된다. ex) GCD(24,8) = GCD(16,8) = GCD(8,0) = 8 최대공약수 구현 재귀함수를 사용한 유클리드 호제법 int gcd(int a, int b){ if(b==0){ return a; } else{ reutnr gcd(b,a%b); } } 세 수의 최대공약수 GCD(a,b,c) = GCD(GCD(a,b),c) N개의 수 도 같은 방식으로 구할.. 2023. 1. 2.
[JAVA] -큐(Queue) 큐(Queue)란? 한쪽 끝에서 Data를 넣고 다른 한쪽에서 Data를 뺄 수 있는 구조이다. Stack과는 다르게 먼저 들어간 것이 먼저 나오는 FIFO(First In First Out) 이다. 큐(Queue)의 사용법 java.util.LinkedList, java.util.Queue import 하여 사용 Queue queue = new LinkedList() import java.util.LinkedList; //import import java.util.Queue; //import Queue queue = new LinkedList(); //String형 queue 선언, linkedlist 이용 큐(Queue)의 연산 offer(var), add(var) - 큐(Queue)에 var를 넣음.. 2022. 12. 30.
백준 9093번 단어 뒤집기(JAVA) 백준 9093번 https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 문제설명 테스트 케이스의 개수를 입력받고, 그 만큼 반복하며 문자열을 입력받는다. 그 후, 단어를 기준으로 뒤집어서 출력하는 프로그램을 작성. 접근 1. 단어 기준이므로 공백을 기준으로 데이터를 쪼개야 할 것같다고 생각을함. 2. 공백을 기준으로 하여 단어별로 뒤집어야하니 am이 입력될 시 ma로 후입선출 LIFO가 일어남. -> Stack을 사용하면 될것 같다고 생각함. .. 2022. 12. 27.
[JAVA] - 스택(Stack) 스택(Stack)이란? 자료 구조 중 하나인 Stack의 사전적 정의는 '쌓다', '더미'입니다. Stack의 가장 큰 특징은 나중에 들어간 것이 먼저 나오는 (Last In First Out)의 형태입니다. 스택(Stack)의 사용법 java.uitl.Stack을 import하여 사용 Stack 변수명 = new Stack(); 으로 선언 import java.util.Stack; Stack s = new Stack(); //String형 Stack선언 스택(Stack)의 연산 add(var) - 스택(Stack)에 var를 넣음. ( boolean형 리턴 true/false ) push(var) - 스택(Stack)에 var를 넣음 ( Exception 리턴 ) pop(var) - 스택(Stack)에.. 2022. 12. 27.