๐Ÿ“ algorithm

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค | ์ˆ˜ ์กฐ์ž‘ํ•˜๊ธฐ 2 JAVA(์ž๋ฐ”)

c0zi 2023. 9. 18. 10:15

๐Ÿง ๋ฌธ์ œ ์ด๋ฆ„

์ˆ˜ ์กฐ์ž‘ํ•˜๊ธฐ 2

 

 

๐Ÿงพ ๋ฌธ์ œ ์„ค๋ช…

์ •์ˆ˜ ๋ฐฐ์—ด numLog๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ฒ˜์Œ์— numLog[0]์—์„œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด "w", "a", "s", "d"๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ์ˆœ์„œ๋Œ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ์ž‘์„ ํ–ˆ๋‹ค๊ณ  ํ•ฉ์‹œ๋‹ค.

 

  • "w" : ์ˆ˜์— 1์„ ๋”ํ•œ๋‹ค.
  • "s" : ์ˆ˜์— 1์„ ๋บ€๋‹ค.
  • "d" : ์ˆ˜์— 10์„ ๋”ํ•œ๋‹ค.
  • "a" : ์ˆ˜์— 10์„ ๋บ€๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋งค๋ฒˆ ์กฐ์ž‘์„ ํ•  ๋•Œ๋งˆ๋‹ค ๊ฒฐ๊ด๊ฐ’์„ ๊ธฐ๋กํ•œ ์ •์ˆ˜ ๋ฐฐ์—ด์ด numLog์ž…๋‹ˆ๋‹ค. ์ฆ‰, numLog[i]๋Š” numLog[0]๋กœ๋ถ€ํ„ฐ ์ด i๋ฒˆ์˜ ์กฐ์ž‘์„ ๊ฐ€ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ ์ •์ˆ˜ ๋ฐฐ์—ด numLog์— ๋Œ€ํ•ด ์กฐ์ž‘์„ ์œ„ํ•ด ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

 

 

๐Ÿค™๐Ÿป ์ œํ•œ ์‚ฌํ•ญ

  • 2 ≤ numLog์˜ ๊ธธ์ด ≤ 100,000
    • -100,000 ≤ numLog[0] ≤ 100,000
    • 1 ≤ i ≤ numLog์˜ ๊ธธ์ด์ธ ๋ชจ๋“  i์— ๋Œ€ํ•ด |numLog[i] - numLog[i - 1]|์˜ ๊ฐ’์€ 1 ๋˜๋Š” 10์ž…๋‹ˆ๋‹ค.

 

 

๐Ÿšฉ ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

- numLog : [0, 1, 0, 10, 0, 1, 0, 10, 0, -1, -2, -1], return : "wsdawsdassw"

result์ธ "wsdawsdassw"๋ฅผ ๋”ฐ๋ผ numLog[0]์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ์กฐ์ž‘์„ ํ•˜๋ฉด numLog์˜ ๊ฐ’๊ณผ ์ˆœ์„œ๋Œ€๋กœ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "wsdawsdassw"๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค

 

๋”๋ณด๊ธฐ

Hint ) "์ˆ˜ ์กฐ์ž‘ํ•˜๊ธฐ 1" ๋ฌธ์ œ์˜ n๊ฐ’์ด numLog[0]์— ํ•ด๋‹นํ•˜๋ฉฐ, ์ด ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ numLog์— ๋”ฐ๋ผ "์ˆ˜ ์กฐ์ž‘ํ•˜๊ธฐ 1" ๋ฌธ์ œ์˜ control์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋ผ๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #1์€ "์ˆ˜ ์กฐ์ž‘ํ•˜๊ธฐ 1" ๋ฌธ์ œ์˜ ์ž…์ถœ๋ ฅ ์˜ˆ #1๊ณผ ๊ฐ™์€ ์˜ˆ์‹œ์ด๋ฏ€๋กœ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

์ˆ˜ ์กฐ์ž‘ํ•˜๊ธฐ 1 ๊ธ€ ๋ณด๋Ÿฌ ๊ฐ€๊ธฐ

 


 โ˜‘๏ธ ๋ฌธ์ œ ํ’€์ด

 

๐Ÿ“ for๋ฌธ ์‚ฌ์šฉ

 

1. ๋จผ์ € ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ๋ฐฐ์—ด์˜ n + 1๋ฒˆ์งธ ์ˆ˜์™€ n๋ฒˆ์งธ ์ˆ˜์˜ ์ฐจ์ด๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. -> for๋ฌธ์„ ํ†ตํ•ด ์ด ์ฐจ์ด๋ฅผ j๋ผ๊ณ  ์ •ํ•ด์ค€๋‹ค.

2. ์ด์ œ๋ถ€ํ„ฐ j ๊ฐ’์„ if, else-if๋กœ ๋‚˜๋ˆ„์–ด ์ฐจ์ด์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž์—ด์„ answer์— ๋”ํ•ด์ค€๋‹ค.

 

class Solution {
    public String solution(int[] numLog) {
        
        String answer = "";
        
        for (int i = 0; i < numLog.length - 1; i++) {
            int j = numLog[i + 1] - numLog[i];
            
            if (j == 1) {
                answer += "w";
            } else if (j == -1) {
                answer += "s";
            } else if (j == 10) {
                answer += "d";
            } else if (j == -10) {
                answer += "a";
            }
        }
        
        return answer;
    }
}

 

๋น„๊ต์  ์‰ฝ๊ณ  ๋ฌธ์ œ ํ’€์ด์—๋„ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€ ์•Š์•˜๋‹ค.

 

๐Ÿ“ switch๋ฌธ ์‚ฌ์šฉ

 

๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ํ’€์ด๋กœ switch๋ฌธ ์‚ฌ์šฉ๋„ ์žˆ์—ˆ๋‹ค.

๋‹ค์Œ์—๋Š” ๋‚˜๋„ switch๋กœ ํ’€์–ด์•ผ์ง€ !

 

class Solution {
    public String solution(int[] numLog) {
        String answer = "";
        for(int i=1; i<numLog.length; i++){
            int j = numLog[i-1] - numLog[i];
            switch(j){
                case -1 : answer+='w'; break;
                case 1 : answer+='s'; break;
                case -10 : answer+='d'; break;
                case 10 : answer+='a'; break;
            }
        }
        return answer;
    }
}