[TIL] (230913) ๐Ÿค” ๋‚ ์งœ๋ฅผ ๊ณ„์‚ฐํ• ๋•Œ๋Š” LocalDate์™€ Calendar์ค‘ ์–ด๋–ค๊ฒŒ ๋” ๋‚˜์€๊ฑธ๊นŒ?

Noh Jihyeonยท2023๋…„ 9์›” 15์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
24/49
post-thumbnail

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ "์ฃผ์–ด์ง„ ์›”(a)๊ณผ ์ผ(b)์„ ์ด์šฉํ•˜์—ฌ 2016๋…„์˜ ํ•ด๋‹น ๋‚ ์งœ์˜ ์š”์ผ์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜"ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด๋ณด์•˜๋‹ค.

๐Ÿ”ธ๋ฌธ์ œ ๋ฐœ์ƒ

๋ฌธ์ œ ๋งํฌ: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 12901๋ฒˆ




๐Ÿ”ธ์‹œ๋„ํ•ด ๋ณธ ๊ฒƒ

โœ… ๋‚ด ํ’€์ด

class Solution {
    public String solution(int a, int b) {
        String dayWeek[] = {"THU","FRI","SAT","SUN","MON","TUE","WED"};
        int monthDay[] = {31,29,31,30,31,30,31,31,30,31,30,31};
        int day = 0;
        String answer = "";
        
        for(int i = 0; i < a - 1; i++) {
            day += monthDay[i];
        }
        day += b;        
        answer = dayWeek[(day % 7)];
        return answer;
    }
}

๋‚˜๋Š” 2016๋…„์˜ ํŠน์ • ๋‚ ์งœ์— ํ•ด๋‹นํ•˜๋Š” ์š”์ผ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด๋ดค๋‹ค.

  1. ๋‚ ์งœ ๊ณ„์‚ฐ:
    for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ์›”(a)์˜ ์ „ ์›”๊นŒ์ง€์˜ ์ด ์ผ์ˆ˜๋ฅผ day ๋ณ€์ˆ˜์— ๋ˆ„์ ํ•จ.
    ์˜ˆ๋ฅผ ๋“ค์–ด, a๊ฐ€ 3์›”์ด๋ฉด 1์›”๊ณผ 2์›”์˜ ์ด ์ผ์ˆ˜๋ฅผ ๋”ํ•œ๋‹ค.
    ์ž…๋ ฅ๋œ ์ผ(b)์„ day์— ๋”ํ•˜์—ฌ, 2016๋…„ 1์›” 1์ผ๋ถ€ํ„ฐ a์›” b์ผ๊นŒ์ง€์˜ ์ด ์ผ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

  2. ์š”์ผ ๊ณ„์‚ฐ:
    ๊ณ„์‚ฐ๋œ ์ด ์ผ์ˆ˜(day)๋ฅผ 7๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜์—ฌ ํ•ด๋‹น ์š”์ผ์˜ ์ธ๋ฑ์Šค๋ฅผ ์–ป๋Š”๋‹ค.
    ๋ฌธ์ œ์˜ ๊ธฐ์ค€์ ์ธ 2016๋…„ 1์›” 1์ผ์ด ๊ธˆ์š”์ผ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋‚˜๋จธ์ง€์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ผ์„ ๊ฒฐ์ •ํžŒ๋‹ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ฉด "THU"(๋ชฉ์š”์ผ), 1์ด๋ฉด "FRI"(๊ธˆ์š”์ผ)๊ฐ€ ๋˜๋Š”๊ฒƒ์ด๋‹ค.

  3. ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜:
    ๊ณ„์‚ฐ๋œ ์š”์ผ์„ answer์— ํ• ๋‹นํ•˜๊ณ , ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ผ๋‹จ ๋‚ด๊ฐ€ ์•„๋Š” ์„ ์—์„œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ดค์œผ๋‚˜ ๋ถ„๋ช… ๋‚ ์งœ์™€ ๊ด€๋ จ๋œ ํ•จ์ˆ˜๊ฐ€ ์žˆ์„๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ฐพ์•„๋ดค๋‹ค.


โœ… ๋‹ค๋ฅธ ํ’€์ด 1: LocalDate ํ™œ์šฉ

import java.time.*;
class Solution {
    public String solution(int a, int b) {
        return LocalDate.of(2016, a, b).getDayOfWeek().toString().substring(0,3);
    }
}



โœ… ๋‹ค๋ฅธ ํ’€์ด 2: Calendar ํด๋ž˜์Šค ํ™œ์šฉ

import java.util.*;

class TryHelloWorld {
    public String getDayName(int month, int day) {
        Calendar cal = new Calendar.Builder().setCalendarType("iso8601")
                        .setDate(2016, month - 1, day).build();
        return cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, new Locale("ko-KR")).toUpperCase();
    }
}
 




๐Ÿ”ธํ•ด๊ฒฐ

์œ„์™€ ๊ฐ™์ด ๋‘๊ฐ€์ง€๋กœ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
๋‘ ๋ฉ”์„œ๋“œ์˜ ์ฐจ์ด์ ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • LocalDate ๋ฐฉ์‹์€ ํ˜„๋Œ€์ ์ด๊ณ  ๊ฐ„๊ฒฐํ•˜๋ฉฐ, ์ง๊ด€์ ์œผ๋กœ ์š”์ผ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Calendar ๋ฐฉ์‹์€ ๋” ๋งŽ์€ ์ปค์Šคํ…€ ์„ค์ •๊ณผ ๋ณต์žกํ•œ ๋‚ ์งœ ๊ณ„์‚ฐ์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.




๐Ÿ”ธ์•Œ๊ฒŒ ๋œ ์ 

  • LocalDate ํ™œ์šฉ: Java 8 ์ดํ›„ ๋„์ž…๋œ ๋‚ ์งœ/์‹œ๊ฐ„ API๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ , ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์ค€๋‹ค.
    ๋‚ด๋ถ€์ ์ธ ๊ณ„์‚ฐ ์—†์ด ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ผ์„ ๊ตฌํ•˜๋Š” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด๋‹ค.
  • Calendar ํ™œ์šฉ: Java์˜ ์ดˆ๊ธฐ ๋ฒ„์ „๋ถ€ํ„ฐ ์กด์žฌํ•ด ์˜จ Calendar ํด๋ž˜์Šค๋Š” ๋ณต์žกํ•œ ๋‚ ์งœ ์‹œ๊ฐ„ ์—ฐ์‚ฐ์— ์ ํ•ฉํ•˜๋‹ค.
    ๋‹ค์–‘ํ•œ ์„ค์ •๊ณผ ์„ธ๋ถ€์ ์ธ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ทธ์—๋”ฐ๋ผ ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๊ณ  ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์—ผ๋‘ํ•ด์•ผ ํ•œ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ, ๋‘ ๋ฐฉ๋ฒ• ๋ชจ๋‘ ์œ ํšจํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ์—์„œ๋Š” LocalDate๋ฅผ ํ™œ์šฉํ•˜๋Š”๊ฒŒ ๋” ํšจ์œจ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊นจ๋‹ซ๋Š”๋‹ค.

profile
๊ผญ๊ผญ ์”น์–ด์„œ ์†Œํ™”์‹œํ‚ค๋Š” ๋ง›์žˆ๋Š” ์ฝ”๋”ฉ

0๊ฐœ์˜ ๋Œ“๊ธ€