Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Method
- string
- implement
- two pointers
- hash table
- bit manipulation
- simulation
- Number Theory
- database
- sorting
- geometry
- Math
- java
- 코테
- Matrix
- 자바
- SQL
- Binary Search
- Tree
- Stack
- array
- Data Structure
- Class
- 코딩테스트
- greedy
- Binary Tree
- 파이썬
- dynamic programming
- Counting
- 구현
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 2511. Maximum Enemy Forts That Can Be Captured 본문
1. Input
1) int[] forts
- forts[i] == 1: 아군 요새
- forts[i] == 0: 적군 요새
- forts[i] == -1: 빈 요새
2. Output
1) 아군을 1번 이동시켜서 함락시킬 수 있는 적 요새의 최대 수를 반환
- 아군이 움직이다가 빈 요새 또는 아군 요새를 만나면 행군을 멈춰야 한다.
- 다시 말하면, 아군은 적군 요새만 넘어다닐 수 있다.
2) 적군 요새를 함락시킬 수 없다면 0을 반환
3. Constraint
1) 1 <= forts.length <= 1000
2) -1 <= forts[i] <= 1
4. Example
Input: forts = [1,0,0,-1,0,0,0,0,1] -> Output: 4
설명:
- 0번 아군을 3번까지 옮기면 2개의 적군 요새를 함락시킬 수 있다.
- 8번 아군을 3번까지 옮기면 4개의 적군 요새를 함락시킬 수 있다.
- 따라서 4를 반환한다.
5. Code
1) 첫 코드(2023/05/06)
class Solution {
public int captureForts(int[] forts) {
int max = 0;
for(int i=0 ; i<forts.length ; i++){
if(forts[i]==-1){
for(int j=i-1 ; j>=0 && forts[j]!=-1 ; j--)
if(forts[j]==1){
max = Math.max(max, i-j-1);
break;
}
for(int j=i+1 ; j<forts.length && forts[j]!=-1 ; j++)
if(forts[j]==1){
max = Math.max(max, j-i-1);
break;
}
}
}
return max;
}
}
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 2520. Count the Digits That Divide a Number (0) | 2023.05.06 |
---|---|
[LeetCode/Easy] 2515. Shortest Distance to Target String in a Circular Array (0) | 2023.05.06 |
[LeetCode/Easy] 2506. Count Pairs Of Similar Strings (0) | 2023.05.06 |
[LeetCode/Easy] 2500. Delete Greatest Value in Each Row (0) | 2023.05.05 |
[LeetCode/Easy] 2496. Maximum Value of a String in an Array (0) | 2023.05.05 |