일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 단어장
- JLPT
- Node.js
- java
- gsap
- 일본어
- 자바스크립트
- 함수
- html
- Algorithm
- 초연결 사회의 데이터통신과 네트워킹
- reactjs code snippets
- scrolly
- 연습문제
- ScrollToPlugin
- 스크롤
- 자바
- 한빛아카데미
- quizlet
- ArrayList
- React
- JavaScript
- 이벤트
- 라이브러리
- 알고리즘
- 데이터통신
- prettier-code formatter
- 네트워킹
- 백준
- 초연결사회의 데이터통신과 네트워킹
- Today
- Total
목록Algorithm (91)
umilove98의 블로그
1부터 늘려가면서 결과값을 생각해보니 홀수 : (N/2+2)X(N/2+1) 짝수 : (N/2+1)X(N/2+1) 의 결과가 나오는 것을 확인할 수 있었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(bf.readLine()); int result = 0; if(n%2=..
사람들의 앉은 모습을 ArrayList로 표현하여 N이 주어지면 0부터 N까지가 담겨있는 ArrayList 를 생성 0번자리는 필요 없으므로 index를 1부터 리스트의 마지막자리까지 계속 순환시킴 순환 도중 따로 k의 count를 세어 count가 k의 값이 될 때마다 해당 index의 원소값을 출력 ArrayList에 add함 해당 자리의 사람은 삭제된 것으로 간주하기 위해 원소값을 0으로 바꾸어줌 순환 도중 index의 원소값이 0인 자리는 없는 것으로 간주하기 위해 count를 증가하지 않음 출력할 ArrayList의 size가 N값과 같아지면 모든 사람이 제거된 것이므로 순환을 종료 import java.io.BufferedReader; import java.io.IOException; impo..
ArrayList로 문제를 해결하기 위해 64가 담긴 ArrayList를 생성 막대들의 총 합이 X보다 큰지 판별 리스트의 맨 마지막 원소(가장 작은 길이의 막대)를 가져와서 자른 막대의 절반 중 하나를 버리고 남아있는 막대의 길이의 합이 X보다 크거나 같다면 막대의 절반만 다시 리스트의 맨 뒤에 집어넣어줌 ex) [64] -> 32 , 32 (x [32] 아닌 경우 막대의 절반 크기를 두 번 리스트의 맨 뒤에 집어넣어줌 (x > 32인 경우) -> [32, 32] 막대들의 총 합이 X와 같아질 때까지 위의 과정을 반복 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java..
먼저 입력된 값들 중 n 과 가장 가까운 작은 값 과 가장 가까운 큰 값을 start, end에 저장한다. 이 때, 입력된 값 중 n과 같은 값이 있을 경우에 조건을 만족하는 구간이 생기지 않으므로 0을 출력하고 프로그램을 종료한다. start 값보다 1큰 값 부터 end값보다 1 작은 값 사이에서 n을 사이에 포함하는 두 수들[i ,j]을 모두 찾으면 되므로 이중 for문을 사용하여 start+1값부터 n까지 를 i로 고정시켜놓고 n 값부터 end -1 값까지를 j에 넣어 조합을 모두 찾으며 카운트한다. 이대로 구현하면 [n,n]값도 카운트에 포함되므로 if문을 이용해 제외시켜준다. 카운트한 값 출력 import java.io.BufferedReader; import java.io.IOException..
첫째 줄에서 입력받을 약수의 개수를 먼저 입력받아 n에 저장하고 for문으로 다음 줄의 모든 약수들을 ArrayList에 입력받았다. ArrayList의 원소들 중 최소값, 최대값을 찾아 곱한 결과를 출력 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader bf ..
첫째 줄의 보드 크기 a,b를 입력을 받아서 해당 크기의 2차원 배열을 생성한다. 생성된 2차원 배열에 아래의 보드 내용을 입력한다. 8x8크기의 보드를 잘라내야 하므로 잘라내는 시작지점은 0,0부터 a-7, b-7까지가 된다. 각 시작 지점부터 8x8만큼을 비교하여 판단하는 함수 judgment를 만들어준다. 8x8만큼을 지정하여 비교해야 하므로 매개변수로 받은 n, m 부터 n+8, m+8까지 진행하며 비교한다. 좌측상단이 W로 시작하는 경우와 B로 시작하는 경우 두 가지가 존재하므로 stand변수를 두 개 만들어 비교하고 일치하지 않는 경우 cnt도 두 개 따로 카운트한다. 한 번의 8x8 순회에서 나온 두 개의 cnt 중 더 작은 값을 현재까지 나온 min 값과 비교하여 최소값을 min 에 저장한..