Skip to main content

[Java] 12901 2016๋…„


๐Ÿ“ 2016๋…„

1. ๋ฌธ์ œ ์š”์•ฝ

  • 2016๋…„ a์›” b์ผ์ด ๋ฌด์Šจ ์š”์ผ์ธ์ง€ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜
  • ์š”์ผ ์ด๋ฆ„์€ ๊ฐย SUN,MON,TUE,WED,THU,FRI,SAT

2. ์ ‘๊ทผ ๋ฐฉ๋ฒ•

  • ๊ฐ ๋‹ฌ์˜ ์ผ์ˆ˜๋ฅผ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ ์ด ๋•Œ ์œค๋…„ ์ ์šฉ
    • int[] days = {31,29,31,30,31,30,31,31,30,31,30,31};
  • ์ž…๋ ฅ๋œ ๋‹ฌ ์ „๊นŒ์ง€ ์ผ์ˆ˜๋ฅผ ํ•ฉ์‚ฐ โ†’ ์ด ์ง€๋‚œ ์ผ ์ˆ˜ ๊ณ„์‚ฐ
  • 1์›” 1์ผ๋ถ€ํ„ฐ ์ž…๋ ฅ์ผ๊นŒ์ง€ ์ด ์ผ์ˆ˜ โ†’ ์š”์ผ ๊ณ„์‚ฐ
    • (์ด์ผ์ˆ˜ + ๊ธฐ์ค€ ์š”์ผ ์ธ๋ฑ์Šค) % 7
    • ๊ธฐ์ค€ ์š”์ผ: 1์›” 1์ผ = ๊ธˆ์š”์ผ โ†’ ์ธ๋ฑ์Šค 5 (0=SUN)

3. ์ •๋‹ต์ฝ”๋“œ

class Solution {
    public String solution(int a, int b) {
        // 2016 ์œค๋…„ ํ•œ ๋‹ฌ ์ผ์ˆ˜
        int[] days = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        String[] week = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
        
        // 1์›” 1์ผ๋ถ€ํ„ฐ ์ž…๋ ฅํ•œ ๋‚ ์งœ๊นŒ์ง€ ์ด ์ผ์ˆ˜ ๊ณ„์‚ฐํ•˜๊ธฐ
        int totalDays = 0;
        for (int i = 0; i < a - 1; i++) {
            totalDays += days[i];
        }
        totalDays += b; // ๋ฐ˜๋ณต๋ฌธ ๋ฐ–์—์„œ ์ด๋ฒˆ๋‹ฌ ์ผ์ˆ˜ ์ถ”๊ฐ€
        
        // 2016๋…„ 1์›” 1์ผ ์š”์ผ์€ ๊ธˆ์š”์ผ(FRI)
        // ๊ธˆ์š”์ผ(FRI, idx 5)
        // ๊ทธ๋Ÿผ (totalDays + ?) % 7 = 5๊ฐ€ ๋˜๋„๋ก ๊ณ„์‚ฐํ•˜๋ฉด?
        // (1 + ?) % 7 = 5;
        // ? = 4
        int dayOfWeek = (totalDays + 4) % 7;
        
        return week[dayOfWeek];
        
    }
}
  1. ๊ฐ ๋‹ฌ ์ผ์ˆ˜ ๋ฐฐ์—ด๊ณผ ์š”์ผ ๋ฐฐ์—ด ์ค€๋น„
  2. ์ž…๋ ฅ ๋‹ฌ ์ „๊นŒ์ง€ ์ผ์ˆ˜ ํ•ฉ์‚ฐ + ์ด๋ฒˆ ๋‹ฌ ๋‚ ์งœ โ†’ ์ด ์ง€๋‚œ ์ผ์ˆ˜ totalDays ๊ณ„์‚ฐ
  3. 1์›” 1์ผ ๊ธˆ์š”์ผ ๊ธฐ์ค€ ๋ณด์ • (+4) โ†’ ์š”์ผ ์ธ๋ฑ์Šค (totalDays + 4) % 7 ๊ณ„์‚ฐ
  4. ๊ณ„์‚ฐ๋œ ์ธ๋ฑ์Šค๋กœ week[] ์—์„œ ์š”์ผ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜ํ•˜๊ธฐ

4. ์˜ค๋‹ต / ์–ด๋ ค์› ๋˜ ์ 

1. 1์›” 1์ผ๋ถ€ํ„ฐ ์ž…๋ ฅํ•œ ๋‚ ์งœ๊นŒ์ง€ ์ง€๋‚œ ์ผ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•


์˜ˆ๋ฅผ ๋“ค์–ด์„œ a = 5์›”, b = 24์ผ์ด๋ผ๋ฉด 1์›”, 2์›”, 3์›”, 4์›” ์ด ์ผ์ˆ˜ + 5์›” 24์ผ ์ด ์ผ์ˆ˜๋ฅผ ํ•ฉ์ณ์•ผ ํ•œ๋‹ค.

for (int i = 0; i < a - 1; i++) {
    totalDays += days[i];
}
  • i = 0 โ†’ 1์›” ์ผ์ˆ˜ ๋”ํ•˜๊ธฐ
  • i = 1 โ†’ 2์›” ์ผ์ˆ˜ ๋”ํ•˜๊ธฐ
  • i = 2 โ†’ 3์›” ์ผ์ˆ˜ ๋”ํ•˜๊ธฐ
  • i = 3 โ†’ 4์›” ์ผ์ˆ˜ ๋”ํ•˜๊ธฐ
  • ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ์‹œ โ†’ a - 2๊นŒ์ง€ ๋Œ๊ณ  ์ด a - 1๊ฐœ์˜ ์ด์ „ ๋‹ฌ ์ผ์ˆ˜๊ฐ€ ํ•ฉ์‚ฐ๋œ๋‹ค. ์ฆ‰ ์ž…๋ ฅํ•œ ๋‹ฌ ์ด์ „ ๋‹ฌ๋“ค์˜ ์ผ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋”ํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ
  • ์—ฌ๊ธฐ;์„œ a - 2 ๊นŒ์ง€ ๋„๋Š” ์ด์œ ๋Š” ์ธ๋ฑ์Šค๊ฐ€ 0๋ถ€ํ„ฐ ์‹œ์ž‘์ด๋ผ์„œ

2. ์š”์ผ ์ธ๋ฑ์Šค (totalDays + 4) % 7 ์ธ ์ด์œ  (์ฃผ์„์— ์žˆ์Œ)

  • 2016๋…„ 1์›” 1์ผ ์š”์ผ์€ ๊ธˆ์š”์ผ(FRI)
  • ๊ธˆ์š”์ผ(FRI, idx 5)
  • ๊ทธ๋Ÿผ (totalDays + ?) % 7 = 5๊ฐ€ ๋˜๋„๋ก ๊ณ„์‚ฐํ•˜๋ฉด?
  • (1 + ?) % 7 = 5;
  • ? = 4