일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Method
- greedy
- sorting
- Tree
- two pointers
- bit manipulation
- 파이썬
- database
- Data Structure
- Binary Search
- dynamic programming
- hash table
- Counting
- 코테
- Stack
- Class
- java
- Number Theory
- Matrix
- 구현
- geometry
- array
- 코딩테스트
- string
- 자바
- SQL
- Binary Tree
- simulation
- implement
- Math
- Today
- Total
목록simulation (62)
코린이의 소소한 공부노트
1. Input 1) String[] words 2. Output 1) words에서 찾을 수 있는 순서쌍의 최대 수를 반환 - words[i]와 words[j]가 순서쌍이 되려면 i Output: 0 5. Code class Solution { public int maximumNumberOfStringPairs(String[] words) { boolean[] visited = new boolean[words.length]; int count = 0; for(int i=0 ; i
1. Input 1) int mainTank - 트럭이 달리면서 소비하는 연료를 담은 탱크 2) int additionalTank - 여분 탱크로, 트럭이 달리면서 직접적으로 해당 연료를 소비할 수는 없다. 2. Output 1) 다음과 같이 계산했을 때 트럭이 달릴 수 있는 최대 거리를 반환 - 트럭은 연료 1리터로 10km를 갈 수 있다. - addtionalTank에 연료가 있는 한, mainTank의 연료 5리터를 소모할 때마다 addtionalTank의 연료 1리터가 mainTank로 자동 보충 된다. 3. Constraint 1) 1 0){ if(mainTank>=5){ used += 5; mainTank -= 5; if(additionalTank>0){ additionalTank--; mai..
1. Input 1) int[] nums - nums.length == n - 1부터 n까지 무작위로 나열되어있는 배열 2. Output 1) 인접한 두 요소의 위치를 바꾸면서 맨 앞은 1이고 맨 뒤는 n인 배열을 만드는 데 필요한 최소 횟수를 반환 - 다른 요소들의 순서는 상관 없다. 3. Constraint 1) 2
1. Input 1) String s 2. Output 1) s에서 “AB" 또는 "CD”를 계속 없앨 때 나올 수 있는 결과 중 가장 짧은 길이를 반환 3. Constraint 1) 1
1. Input 1) int n - 1번부터 n번까지 n명의 친구들이 시계방향 순으로 원을 그리며 앉아 있다. 2) int k 2. Output 1) 1번부터 시작해서 시계방향으로 k칸 뒤 친구에게 공을 주고, 그 다음 2*k칸 뒤 친구에게 공을 주는 식으로 공을 계속 전달하다 공을 2번 받는 친구가 생겼을 때 공 전달을 그만 뒀을 때, 공을 한 번도 받지 못한 친구들의 번호를 담은 배열을 반환 3. Constraint 1) 1 2번 - 2번이 6칸 뒤 친구에게 전달 -> 3번 - 3번이 공을 2번 받았으므로 한 번도 받지 못한 4번과 5번을 담아 반환한다. 5. Code 1) 첫 코드(2023/06/29) class Solution { public int[] circularGameLosers(int n..
1. Input 1) int[] player1 2) int[] player2 2. Output 1) 두 선수의 점수를 계산해 player1이 이겼다면 1을, player2가 이겼다면 2를, 비겼다면 0을 반환 - 10핀을 쓰러트렸다면 그 다음 2판의 점수가 2배가 된다. 3. Constraint 1) n == player1.length == player2.length 2) 1

1. Input 1) char[][] board - board는 8*8 체스보드를 나타낸다. - ‘R': 룩. board에 딱 1개뿐이다. 상하좌우 중 한 방향을 선택해 가고싶은 만큼 이동할 수 있다. - 'B': 비숍. 비숍에 막히면 룩은 이동할 수 없다. - ‘p: 폰. 룩이 잡을 수 있는 말이다. - ‘.': 보드의 빈 공간을 뜻한다. 2. Output 1) 룩(R)이 잡을 수 있는 폰의 개수를 반환 3. Constraint 1) board.length == 8 2) board[i].length == 8 3) board에는 'R', '.', 'B', 'p' 이외의 문자는 없다. 4. Example Input: board = [[".",".",".",".",".",".",".","."], -> Out..
1. Input 1) String num1 2) String num2 2. Output 1) num1과 num2의 합을 문자열로 반환 - BigInteger와 같은 빌트인 라이브러리 사용 금지 3. Constraint 1) 1 Output: "533" 5. Code 1) 첫 코드(2023/05/19) class Solution { public String addStrings(String num1, String num2) { Stack stack = new Stack(); int carry = 0, i1 = num1.length()-1, i2 = num2.length()-1; while(i1>=0 || i2>=0){ int x = carry; if(i1>=0) x += num1.charAt(i1--)-'0..
1. Input 1) String a 2) String b 2. Output 1) 2진수를 담은 문자열 a,b의 합을 2진수 문자열로 반환 3. Constraint 1) 1 =0 || bi>=0){ int sum = carry; if(ai>=0) sum += a.charAt(ai--)=='1' ? 1 : 0; if(bi>=0) sum += b.charAt(bi--)=='1' ? 1 : 0; carry = sum/2; st.push(sum%2); } if(carry==1) st.push(1); StringBuilder sb = new StringBuilder(); while(!st.empty()) sb.append(st.pop()); return sb.toString(); } } - 스택을 이용하지 않고 ..
1. Input 1) int n 2) int time 2. Output 1) 다음을 time번 시행한 후 베개를 갖고 있는 사람의 번호를 반환 - 1번부터 n번까지 일렬로 서있고, 처음에는 1번이 베개를 갖고 있다. - 1초에 1칸 옆 사람에게 베개를 전달해준다. (1번이 2번에게, 2번이 3번에, ...) - n번이 베개를 넘길 차례가 되면 n-1번에게 전달한다. 즉, 전달 방향이 반대로 바뀐다. 3. Constraint 1) 2 4 -> 3 -> 2 5. Code 1) 첫 코드(2023/05/06) class Solution { public int passThePillow(int n, int time) { int answer = 1; boolean right = true; for(int i=0 ; i