Bibi's DevLog ๐Ÿค“๐ŸŽ

[Java] ๋ฐฑ์ค€ 2920๋ฒˆ '์Œ๊ณ„' ๋ฌธ์ œํ’€์ด - ๋ฐฐ์—ด ์ž…๋ ฅ, ์ €์žฅ, ์ถœ๋ ฅ / ๋‘ ๋ฐฐ์—ด ๋น„๊ต ๋ณธ๋ฌธ

๐Ÿ–ฅ BE ๋ฐฑ์—”๋“œ/Java ์ž๋ฐ”

[Java] ๋ฐฑ์ค€ 2920๋ฒˆ '์Œ๊ณ„' ๋ฌธ์ œํ’€์ด - ๋ฐฐ์—ด ์ž…๋ ฅ, ์ €์žฅ, ์ถœ๋ ฅ / ๋‘ ๋ฐฐ์—ด ๋น„๊ต

๋น„๋น„ bibi 2020. 11. 6. 16:23

๋ฌธ์ œ ์ถœ์ฒ˜ : ๋ฐฑ์ค€ ์˜จ๋ผ์ธ ์ €์ง€
www.acmicpc.net/problem/2920 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

2920๋ฒˆ: ์Œ๊ณ„

๋‹ค์žฅ์กฐ๋Š” c d e f g a b C, ์ด 8๊ฐœ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ 8๊ฐœ ์Œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆซ์ž๋กœ ๋ฐ”๊พธ์–ด ํ‘œํ˜„ํ•œ๋‹ค. c๋Š” 1๋กœ, d๋Š” 2๋กœ, ..., C๋ฅผ 8๋กœ ๋ฐ”๊พผ๋‹ค. 1๋ถ€ํ„ฐ 8๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ์—ฐ์ฃผํ•œ๋‹ค๋ฉด ascending, 8

www.acmicpc.net


๋ฌธ์ œ

๋‹ค์žฅ์กฐ๋Š” c d e f g a b C, ์ด 8๊ฐœ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ 8๊ฐœ ์Œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆซ์ž๋กœ ๋ฐ”๊พธ์–ด ํ‘œํ˜„ํ•œ๋‹ค. c๋Š” 1๋กœ, d๋Š” 2๋กœ, ..., C๋ฅผ 8๋กœ ๋ฐ”๊พผ๋‹ค.

1๋ถ€ํ„ฐ 8๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ์—ฐ์ฃผํ•œ๋‹ค๋ฉด ascending, 8๋ถ€ํ„ฐ 1๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ์—ฐ์ฃผํ•œ๋‹ค๋ฉด descending, ๋‘˜ ๋‹ค ์•„๋‹ˆ๋ผ๋ฉด mixed ์ด๋‹ค.

์—ฐ์ฃผํ•œ ์ˆœ์„œ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๊ฒƒ์ด ascending์ธ์ง€, descending์ธ์ง€, ์•„๋‹ˆ๋ฉด mixed์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— 8๊ฐœ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆซ์ž๋Š” ๋ฌธ์ œ ์„ค๋ช…์—์„œ ์„ค๋ช…ํ•œ ์Œ์ด๋ฉฐ, 1๋ถ€ํ„ฐ 8๊นŒ์ง€ ์ˆซ์ž๊ฐ€ ํ•œ ๋ฒˆ์”ฉ ๋“ฑ์žฅํ•œ๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ascending, descending, mixed ์ค‘ ํ•˜๋‚˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ ์ž…๋ ฅ 1

1 2 3 4 5 6 7 8

์˜ˆ์ œ ์ถœ๋ ฅ 1

ascending

์˜ˆ์ œ ์ž…๋ ฅ 2

8 7 6 5 4 3 2 1

์˜ˆ์ œ ์ถœ๋ ฅ 2

descending

์˜ˆ์ œ ์ž…๋ ฅ 3

8 1 7 2 6 3 5 4

์˜ˆ์ œ ์ถœ๋ ฅ 3

mixed


 

์ด ๋ฌธ์ œ๋Š” ์ž๋ฐ”์˜ ๋ฐฐ์—ด ์ž…๋ ฅ&์ €์žฅ&์ถœ๋ ฅ, ๋ฐฐ์—ด ๋น„๊ต์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด ๊ฐ€๋ฉฐ ํ’€์—ˆ๋‹ค.
๋•๋ถ„์— ์ž๋ฐ”์—์„œ ๋ฐฐ์—ด์„ ๋” ์ž˜ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค!

 

์ž๋ฐ” - ๋ฐฐ์—ด ์ž…๋ ฅ&์ €์žฅ

zzarungna.com/324 ์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

(์ž๋ฐ”์˜ ์ž…๋ ฅ๊ธฐ Scanner์„ ํ™œ์šฉํ•œ ๋ฐฉ๋ฒ•)
* ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์–ด์•ผ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

1. ๋นˆ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค.

๋ฌธ์ž์—ด ๋ฐฐ์—ด : String[] strArr = new String[๋ฐฐ์—ด์˜๊ธธ์ด]; 
์ •์ˆ˜ ๋ฐฐ์—ด : int[] intArr = new int[๋ฐฐ์—ด์˜๊ธธ์ด];

2. Scanner๋ฅผ ์ž„ํฌํŠธํ•˜๊ณ  scanner๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๋‹ค.

import java.util.Scanner; // ์ฝ”๋“œ ๋งจ ์œ„์— ์ž‘์„ฑ.

Scanner s = new Scanner(System.in);

(์‹œ์Šคํ…œ ๋‚ด์—์„œ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์„ ๊ฒƒ์ด๋ฏ€๋กœ System.in ์ด๋‹ค)
(s๋Š” ์Šค์บ๋„ˆ์ด๋ฆ„์ด๋‹ค. ์ž์œ ๋กญ๊ฒŒ ๋ณ€๊ฒฝ๊ฐ€๋Šฅ)

3. ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ ์ž…๋ ฅ๋ฐ›๊ณ , ๋ฐฐ์—ด ์•ˆ์— ํ•˜๋‚˜์”ฉ ๋„ฃ๋Š”๋‹ค.

for (int i = 0; i <intArr.length; i++) {
    intArr[i] = s.nextInt();
}

โ€ป ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ๋Š”, .nextInt()๋Œ€์‹  .next() ๋˜๋Š” .nextLine() ์„ ์‚ฌ์šฉํ•œ๋‹ค.
enter.tistory.com/105 ๋ณด๊ณ  ๋” ๊ณต๋ถ€ํ•˜๊ธฐ. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 


์ž๋ฐ” - ๋ฐฐ์—ด ์ถœ๋ ฅ

korbillgates.tistory.com/120 ์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

- ์œ„์—์„œ ๋ฐ›์•„์˜จ ๋ฐฐ์—ด์˜ ๋ชจ์Šต์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์„ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.
System.out.println(๋ฐฐ์—ด์ด๋ฆ„); ์œผ๋กœ ์ถœ๋ ฅํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค.
์œ„์ฒ˜๋Ÿผ ์ถœ๋ ฅํ•˜๋ ค ํ•˜๋ฉด, "๊ทธ ๋ฐฐ์—ด์˜ ๋ชจ์Šต" ์ด ์•„๋‹Œ "๊ทธ ๋ฐฐ์—ด์˜ ์ฃผ์†Œ๊ฐ’"์ด ์ถœ๋ ฅ๋œ๋‹ค.
[Ljava.lang.String; @ ์ˆซ์ž์™€ ์˜์–ด๋“ค.. ์ฒ˜๋Ÿผ.
(์ž์„ธํ•œ ์ด์œ ๋Š” ๊ตฌ๊ธ€๋งํ•ด๋ด์•ผ๊ฒ ์ง€๋งŒ, ์ž๋ฐ”์—์„œ ๋ฐฐ์—ด์€ ๊ฐ์ฒด=์ฐธ์กฐ๋ณ€์ˆ˜ ๋ผ์„œ ์ฃผ์†Ÿ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋“ฏ..)

๐Ÿ‘‰ ๊ทธ๋ž˜์„œ Arrays๋ฅผ ์ž„ํฌํŠธํ•˜๊ณ , Arrays์˜ toString๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.

import java.util.Arrays

String[] strArr = { "๋‚˜๋Š”", "๋ฌธ์ž์—ด", "๋ฐฐ์—ด" };
System.out.println(Arrays. toString(strArr));

์ด๋Ÿฐ ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


์ž๋ฐ” - ๋‘ ๋ฐฐ์—ด ๋น„๊ต

hadeslee.tistory.com/121 ์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‘‰ ์ž๋ฐ”์—์„œ ๋‘ ๋ฐฐ์—ด(๋ฐฐ์—ด1, ๋ฐฐ์—ด2)์ด ๊ฐ™์€์ง€ ๋น„๊ตํ•˜๋ ค๋ฉด,
์œ„์˜ '๋ฐฐ์—ด์ถœ๋ ฅ'๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ
java.util.Arrays๋ฅผ ์ž„ํฌํŠธํ•˜๊ณ , Arrays์˜ equals() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋‘ ๋ฐฐ์—ด์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์šฉ)
Arrays.equals(๋ฐฐ์—ด1์ด๋ฆ„, ๋ฐฐ์—ด2์ด๋ฆ„);
import java.util.Arrays;

int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
int[] arr3 = {4, 5, 6};

System.out.println(Arrays.equals(arr1, arr2); // true
System.out.println(Arrays.equals(arr2, arr3); // false

 


๋‚ด ์ฝ”๋“œ

import java.util.Scanner;
import java.util.Arrays;

public class Main {
    public static void main (String[] args) {

        int[] arrA = {1, 2, 3, 4, 5, 6, 7, 8};
        int[] arrD = {8, 7, 6, 5, 4, 3, 2, 1};

        Scanner s = new Scanner(System.in);
        int[] nums = new int[8];
        for (int i = 0; i < nums.length; i++) {
            nums[i] = s.nextInt();
        }

        if (Arrays.equals(nums, arrA)) {
            System.out.println("ascending");
        } else if (Arrays.equals(nums, arrD)) {
            System.out.println("descending");
        } else {
            System.out.println("mixed");
        }
    }
}