반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [백준] 백준 27159번 노 땡스! 자바(JAVA)

1) 문제번호 : 27159

 

2) 문제 출처

https://www.acmicpc.net/problem/27159

 

27159번: 노 땡스!

《노 땡스!》는 $3$부터 $35$까지의 정수가 쓰인 수 카드를 이용하여 플레이할 수 있는 보드게임입니다. 수 카드를 경매를 통해서 낙찰받으며, 최종적으로 가지고 있는 수 카드를 이용하여 다음과

www.acmicpc.net

 

2. 문제

《노 땡스!》는 3부터 까지의 정수가 쓰인 수 카드를 이용하여 플레이할 수 있는 보드게임입니다. 수 카드를 경매를 통해서 낙찰받으며, 최종적으로 가지고 있는 수 카드를 이용하여 다음과 같이 점수를 계산합니다.

  1. 정수들을 오름차순으로 정렬한 뒤, 이웃한 수끼리의 차가 1인 구간들로 그룹을 나눕니다.
  2. 각 그룹별로 가장 작은 수를 모두 합한 값이 점수가 됩니다.

예를 들어 가지고 있는 수 카드가 6, 7, 10, 12, 13, 14, 15, 20, 21, 22라면, [6,7], [10], [12,13,14,15], [20,21,22]의 4개의 그룹으로 나뉘며, 점수는 6+10+12+20=48점입니다.

가지고 있는 수 카드가 주어졌을 때 점수를 계산하는 프로그램을 작성하세요.

 

 

3. 제약사항

 

4. 입력

첫 번째 줄에 수 카드의 개수 이 주어집니다.

두 번째 줄에 개의 카드에 적힌 정수 가 공백으로 구분되어 오름차순으로 주어집니다.

 

 

5. 출력

첫 번째 줄에 문제에서 설명한 규칙에 따라 계산한 점수를 출력합니다.

 

6. 풀이

- 값을 입력 받고, 오름차순으로 데이터를 던져주므로 각 배열의 값을 1개씩 비교하여 차이가 -1이면 넘어가고, -1이 아니면 sum에 값을 더해준다.

- 맨 마지막 값에도 차이가 -1이면 기존 min을 더하고, -1이 아니면 그 값을 더해준다.

 

7. 소스 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int N = Integer.parseInt(br.readLine());
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int[] arr = new int[N];
		
		for(int i = 0; i < N; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}
		
		int sum = 0;
		
		int min = arr[0];
		
		if(N == 1) {
			System.out.println(arr[0]);
			return;
		}
		
		for(int i = 0; i < arr.length - 1; i++) {
			if(arr[i] - arr[i+1] == -1) {
				continue;
			} else {
				sum += min;
				min = arr[i+1];
			}
		}
		
		if(arr[arr.length - 2] - arr[arr.length - 1] != -1) {
			sum += arr[arr.length - 1];
		} else {
			sum += min;
		}
		
		System.out.println(sum);
		
		
	}
		
}

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기