문제 : https://www.acmicpc.net/problem/12791

 

12791번: Starman

첫 번째 줄에 질의의 수 정수 Q(Q ≤ 100)가 주어진다. 이후 Q개의 줄에 질의 S, E(1 ≤ S ≤ E ≤ 2016)가 정수로 주어진다.

www.acmicpc.net

문제 요약 : 주어진 연도 사이의 앨범 모두 출력

입력 출력
1 ≤ Q(연도 개수) ≤ 100
1 ≤ S E ≤ 2016

주어진 연도 사이의 앨범 모두 출력

JAVA

소스코드 : https://github.com/cbkpar/BOJ/blob/main/boj_12791.java

채점 번호 아이디 문제 번호 결과 메모리 시간 언어 코드 길이
31025603 cbkpar 12791 맞았습니다!! 16632KB 192ms Java 11 1340B
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	
	public static void main(String args[]) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		int[] year = {1967, 1969, 1970, 1971, 1972, 1973, 1973, 1974, 1975, 1976, 1977, 1977, 1979, 1980, 1983, 1984, 1987, 1993, 1995, 1997, 1999, 2002, 2003, 2013, 2016};
		String[] name = {"DavidBowie", "SpaceOddity", "TheManWhoSoldTheWorld", "HunkyDory", "TheRiseAndFallOfZiggyStardustAndTheSpidersFromMars", "AladdinSane", "PinUps", "DiamondDogs", "YoungAmericans", "StationToStation", "Low", "Heroes", "Lodger", "ScaryMonstersAndSuperCreeps", "LetsDance", "Tonight", "NeverLetMeDown", "BlackTieWhiteNoise", "1.Outside", "Earthling", "Hours", "Heathen", "Reality", "TheNextDay", "BlackStar"};
		int t,a,b,i,s;
		t = Integer.parseInt(br.readLine());
		while(t-->0) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			a = Integer.parseInt(st.nextToken());
			b = Integer.parseInt(st.nextToken());
			s = 0;
			for(i=0;i<25;i++) if(year[i]>=a&&year[i]<=b) s++;
			sb.append(s+"\n");
			for(i=0;i<25;i++) if(year[i]>=a&&year[i]<=b) sb.append(year[i]+" "+name[i]+"\n");
		}
		System.out.println(sb);
	}
}

사전에 25개 앨범의 연도와 제목을 저장해 두고

25개의 앨범을 차례대로 확인하며 주어진 연도 사이에 해당하는지 확인하여 개수를 세고 출력한다.

 

+ Recent posts