본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1640 : 악성 프로그램 삭제하기

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1640 악성 프로그램 삭제하기 (자바, JAVA)입니다.

Intro

Question

문제 설명

현준이는 컴퓨터 인터넷이 느린 것을 알고, 제어판에 들어가 보니 여러 악성 프로그램이 설치 되어 있었다.
현준이 컴퓨터 인터넷이 빨라지도록 도와주기 위해 제어판에 있는 프로그램을 입력하면 악성 프로그램과, 컴퓨터의 위험도를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 프로그램이 입력될 갯수 정수 n이 입력된다.(1<=n<=100)
둘째 줄부터 n줄에 걸쳐 프로그램명인 문자열이 입력된다.(글자 수 : 50글자 이내)

출력

  1. 악성 프로그램인지 아닌지 확인하는 방법 :
    가. 프로그램명이 3글자 이하면 악성 프로그램이다.
    나. 프로그램명에 tap이 들어가면 악성 프로그램이다.
    다. 프로그램명에 xocure이 들어가면 악성 프로그램이다.
  2. 컴퓨터의 위험도 출력 방법 :
    가. 입력된 프로그램명 중에서 악성 프로그램 수가 0~3개이면 safe,
    나. 악성 프로그램 수가 4~6개이면 warning,
    다. 악성 프로그램 수가 7개 이상이면 danger을 출력하시오.

예시

  • 입력 :
    8
    windows tap
    hi
    microsoft office 2013
    xocure web player
    xecure safe
    goclean
    alyac
    von
  • 출력 :
    windows tap
    hi
    xocure web player
    von
    warning

Solution (풀이)

  • 풀이 : 메모리 11176, 시간 64
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int count = Integer.parseInt(br.readLine());

        int badPro = 0;
        for (int i=0; i<count; i++) {
            String word = br.readLine();
            if (word.length()<=3 || word.indexOf("tap") != -1 || word.indexOf("xocure") != -1) {
                badPro ++;
                sb.append(word).append("\n");
            }
        }

        if (badPro<=3) {
            sb.append("safe");
        } else if (badPro<=6) {
            sb.append("warning");
        } else {
            sb.append("danger");
        }

        System.out.println(sb);
        br.close();
    }

}

Ranking(순위)

반응형