b28702, b30804

2024. 10. 10. 09:56·Algorithm & Data Structures/BOJ

 

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
'Algorithm & Data Structures/BOJ' 카테고리의 다른 글
  • b1197. 최소 스패닝 트리
  • b1005. ACMcraft
  • b31403,b30802
  • 2776. 암기왕 (Java)
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (316)
      • Algorithm & Data Structures (238)
        • BOJ (96)
        • SWEA (1)
        • Programers (137)
        • Data Structures (3)
      • DB (25)
        • SQL (19)
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    Java
    binarySearch
    unionfind
    algorithm
    골드
    경로압축
    이분탐색
    알고리즘
    백트래킹
    Union-Find
    전위순회
    dfs
    프로그래머스
    Dijkstra
    programmers
    SQL
    후위순회
    baekjoon
    BFS
    DynamicProgramming
    동적계획법
    Stack
    다익스트라
    스택
    유니온파인드
    PriorityQueue
    구현
    투포인터
    dp
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
b28702, b30804
상단으로

티스토리툴바