https://www.acmicpc.net/problem/28702
https://www.acmicpc.net/problem/30804
28702 : FizzBuzz
FizzBuzz 문제는 Fizz와 Buzz에 공통적으로 들어가는
z가 입력받은 문자열에 있는지 확인하고
아니라면 숫자로 변환하여
숫자의 현위치와 답의 위치를 고려하여 숫자를 계산해낸다.
그다음 Fizz Buzz를 판별하는 method isFizzBuzz를 통해
반환된 문자열을 출력하였다.
30804 : 과일탕후루
투포인터를 활용한 슬라이딩 윈도우 기법으로 풀었다.
시작과 끝점을 계산하기보다 시작점과 끝점을 시작점부터
유기적으로 이동시키면서 최대 연속된 구간을 answer에 저장하고
만약 꽃힌 과일의 갯수가 2개 이상이라면 while 문을 통해
과일을 제거하는 method로 과일을 없애주었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class b28702 {
private static String isFizzBuzz(int n){
if(n % 3 == 0 && n % 5 == 0)
return "FizzBuzz";
else if(n % 3 == 0)
return "Fizz";
else if(n % 5 == 0)
return "Buzz";
else
return String.valueOf(n);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader((System.in)));
String[] input = new String[3];
int num=0, where=0;
for(int i = 0 ; i < 3 ; i++){
input[i] = br.readLine();
if(!input[i].contains("z")){
num = Integer.parseInt(input[i]);
where = i;
}
}
num += (3-where);
System.out.println(isFizzBuzz(num));
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
public class b30804 {
// start 지점 당기기
private static int answer = Integer.MIN_VALUE, start = 0;;
private static HashMap<String,Integer> map = new HashMap<>();
private static void removeStart(String[] input){
if(map.get(input[start]) == 1)
map.remove(input[start]);
else
map.put(input[start], map.get(input[start]) - 1);
start++;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader((System.in)));
int N = Integer.parseInt(br.readLine());
String[] input = br.readLine().split(" ");
//선언
for(int i = 0 ; i < N ; i++) {
//end 올리기 1회
map.put(input[i], map.getOrDefault(input[i], 0) + 1);
if(map.size() <= 2) answer = Math.max(i-start+1,answer);
while(map.size() > 2){
removeStart(input);
}
}
System.out.println(answer);
}
}
'Algorithm & Data Structures > BOJ' 카테고리의 다른 글
b1197. 최소 스패닝 트리 (0) | 2024.10.31 |
---|---|
b1005. ACMcraft (0) | 2024.10.29 |
b31403,b30802 (0) | 2024.10.08 |
2776. 암기왕 (Java) (1) | 2024.01.27 |
12015. 가장 증가하는 부분수열 2 (Java) (0) | 2024.01.10 |