๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers lv-0

๋ฌธ์ž์—ด ๊ณ„์‚ฐํ•˜๊ธฐ - Java [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ]

by ๊ทคํ”ผํ‚ค 2022. 11. 28.

 

โค๏ธ Problem

๋”๋ณด๊ธฐ
  • ๋ฌธ์ œ
    my_string์€ "3 + 5"์ฒ˜๋Ÿผ ๋ฌธ์ž์—ด๋กœ ๋œ ์ˆ˜์‹์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด my_string์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ˆ˜์‹์„ ๊ณ„์‚ฐํ•œ ๊ฐ’์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

  • ์ œํ•œ ์‚ฌํ•ญ
    • ์—ฐ์‚ฐ์ž๋Š” +, -๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘๊ณผ ๋์—๋Š” ๊ณต๋ฐฑ์ด ์—†์Šต๋‹ˆ๋‹ค.
    • 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆซ์ž๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ์ž˜๋ชป๋œ ์ˆ˜์‹์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • 5 ≤ my_string์˜ ๊ธธ์ด ≤ 100
    • my_string์„ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ๊ฐ’์€ 1 ์ด์ƒ 100,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
      • my_string์˜ ์ค‘๊ฐ„ ๊ณ„์‚ฐ ๊ฐ’์€ -100,000 ์ด์ƒ 100,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
      • ๊ณ„์‚ฐ์— ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž๋Š” 1 ์ด์ƒ 20,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
      • my_string์—๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์–ด๋„ ํ•˜๋‚˜ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • return type ์€ ์ •์ˆ˜ํ˜•์ž…๋‹ˆ๋‹ค.
    • my_string์˜ ์ˆซ์ž์™€ ์—ฐ์‚ฐ์ž๋Š” ๊ณต๋ฐฑ ํ•˜๋‚˜๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

  • ์ž…์ถœ๋ ฅ ์˜ˆ & ์„ค๋ช…
no my_string result
1 "3 + 4" "7"
  1. 3 + 4 = 7์„ return ํ•ฉ๋‹ˆ๋‹ค.

 


 

๐Ÿ’› Solution

ํ’€์ด

class Solution {
    public int solution(String my_string) {
        String[] arr = my_string.split(" ");
        int calc = Integer.parseInt(arr[0]);

        for(int i=1; i<arr.length; i++) {
            if(arr[i].equals("+")) {
                calc += Integer.parseInt(arr[i+1]);
            } else if (arr[i].equals("-")) {
                calc -= Integer.parseInt(arr[i+1]);
            }
        }
        return calc;
    }
}

 

์ฒ˜๋ฆฌ์†๋„ GOOD

 


 

๐Ÿ’œ Comment

์ด ๋ฌธ์ œ์˜ ์ค‘์š”ํ•œ ํžŒํŠธ๋Š” "์ˆซ์ž์™€ ์—ฐ์‚ฐ์ž๋Š” ๊ณต๋ฐฑ ํ•˜๋‚˜๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค"์™€ "์ž˜๋ชป๋œ ์ˆ˜์‹์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค"์ด๋‹ค. ์ฆ‰, ์—ฐ์‚ฐ์ž(+,-) ์•ž๋’ค๋กœ ๊ณต๋ฐฑ(๋„์–ด์“ฐ๊ธฐ)์ด ์žˆ๊ณ  ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด ์š”์†Œ์˜ ๋งจ ์•ž๊ณผ ๋งจ ๋’ค๋Š” ํ•„์—ฐ์ ์œผ๋กœ ์ˆซ์ž๋กœ ์น˜ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ„์–ด String[] arr์— ๋„ฃ์–ด๋‘” ๋’ค, ์—ฐ์‚ฐ์ด ๋œ ๊ฐ’์„ ์ €์žฅํ•  ๋ณ€์ˆ˜ calc๋ฅผ ์„ ์–ธํ•œ ๋’ค arr[0]๋ฅผ ๋„ฃ์–ด์ค€๋‹ค. ์ดํ›„์—๋Š” ์กฐ๊ฑด๋ฌธ์œผ๋กœ arr[i]๊ฐ€ "+"์™€ "-" ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ทธ ๋’ค์— ๋‚˜์˜ค๋Š” ์ˆซ์ž(arr[i+1])๋ฅผ ์—ฐ์‚ฐ์ž์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉด ๋.

์ œํ•œ์‚ฌํ•ญ ์ค‘ "my_string์˜ ์ค‘๊ฐ„ ๊ณ„์‚ฐ ๊ฐ’์€ -100,000 ์ด์ƒ 100,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค."๋ผ๋Š” ๋ถ€๋ถ„ ๋•Œ๋ฌธ์— ์ฒ˜์Œ๋ถ€ํ„ฐ int[]๋‚˜ long[]์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ทธ ๋•Œ ๊ทธ ๋•Œ Integer.parseInt()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด long[] ์„ ์–ธ ์—†์ด๋„ ํ’€์ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ƒ๊ฐ๋ณด๋‹ค ๊ธˆ๋ฐฉ ํ’€์—ˆ๋Š”๋ฐ 8์  GET๐Ÿ˜
๊ทผ๋ฐ ์บก์ณ๋ฅผ ๊นœ๋นกํ–ˆ๋‹ค,, ํ—ท

 

 

 

๋Œ“๊ธ€