https://www.acmicpc.net/problem/1541
์ฝ๋
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.next();
int sum = 0;
int minusSum = 0;
String[] sArr1 = str.split("-"); // '-' ๊ธฐ์ค์ผ๋ก ์๋ผ์ ๋ฐฐ์ด์ ๋ด๊ธฐ
// ์ฒซ '-'๊ฐ ์ค๊ธฐ ์ ๊น์ง๋ ๋ค ๋ํด์ผํจ
String[] sArr2 = sArr1[0].split("\\+");
for(String s : sArr2) {
sum += Integer.parseInt(s);
}
// ์ฒซ '-' ์ดํ์ ์ซ์๋ ๋ค ๋ํํ sum์์ ๋นผ๋ฉด ์ต์๊ฐ
for(int i=1; i<sArr1.length; i++) {
String[] sArr3 = sArr1[i].split("\\+");
for(String s : sArr3) {
minusSum += Integer.parseInt(s);
}
}
System.out.println(sum - minusSum);
scan.close();
}
}
ํ์ด
์ ๋ฌธ์ ๋ฅผ ๋ณด๋ฉฐ -๊ฐ ๋์ฌ ๋๊น์ง ์๋ฅผ ๋ํ๋ฉฐ ๋นผ์ฃผ๋๊ฒ ์ต์๊ฐ์ธ๊ฑธ ํ์ ํ์ง๋ง,,
๊ตฌํ์ ๋ชปํ๋ค. ๊ฒฐ๊ตญ ๋ค๋ฅธ ํํธ๋ฅผ ์ฐธ๊ณ ํด์ ํ์๋ค.
์ฒซ๋ฒ์งธ -๊ฐ ์ค๊ธฐ ์ ๊น์ง์ ์ซ์๋ ๋ชจ๋ ๋ํด์ฃผ์ด์ผํ๋ค.
์๋ฅผ ๋ค์ด์ ์ค๋ช ํด๋ณด๋ฉด ,,
40 + 20 - 30 - 60 + 40 - 20 + 50 ์ด๋ ๋ฌธ์์ด์ด ์์๋,
(40+20) - 30 - (60+40) - (20+50) ์ด ๋๋ค.
1. ๋ฐ๋ผ์ ๋จผ์ ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ "-" ๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ฅด๊ณ ,
2. ์ฒซ "-"๊ฐ ์ค๊ธฐ ์ ์ ์ฒซ ๋ฒ์งธ ์์๋ ๋ชจ๋ ๋ํ๋ค.
3. ๊ทธ ํ์๋ "-"๊ฐ ์ค๊ธฐ ์ ๊น์ง์ ์์๋ ๋ชจ๋ ๋ํ ํ ์ฒซ ๋ฒ์งธ ์์์ ํฉ์์ ๋นผ๋ฉด ์ต์๊ฐ์ด ๋๋ค.
์ฝ๋ 2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.next();
int minSum = 0; // ์ต์๊ฐ
String[] sArr = str.split("-"); // ์
๋ ฅ๋ฐ์ ๋ฌธ์์ด์ "-"๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ฅด๊ธฐ.
for(int i=0; i<sArr.length; i++) {
String[] sArr2 = sArr[i].split("\\+"); // sArr๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ "+"๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ฅด๊ธฐ.
int sum = 0; // sArr ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํ ํฉ
for(String s : sArr2) {
sum += Integer.parseInt(s);
}
// ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์์๋ฅผ ์ ์ธํ ๋๋จธ์ง ์์์ ํฉ์ - ์ด๋ค.
if(i != 0) {
sum *= -1;
}
minSum += sum;
}
scan.close();
System.out.println(minSum);
}
}
์ ์ฝ๋๋ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๋ฐฐ์ด์ ๋ฐ๋ก ์ค์ ํ์ง์๊ณ , if๋ฌธ์ ํตํด ์ฒซ๋ฒ์งธ์์์, ๊ทธ ์ธ ์์์ ๋ํด ์กฐ๊ฑด์ ์ฒ๋ฆฌํด์ฃผ์๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1080๋ฒ: ํ๋ ฌ(๊ทธ๋ฆฌ๋) (0) | 2020.01.28 |
---|---|
[๋ฐฑ์ค] 2745๋ฒ: ์ง๋ฒ ๋ณํ (0) | 2020.01.28 |
[๋ฐฑ์ค] 1120๋ฒ: ๋ฌธ์์ด(๊ทธ๋ฆฌ๋) (0) | 2020.01.23 |
[๋ฐฑ์ค] 10610๋ฒ: 30(๊ทธ๋ฆฌ๋) (0) | 2020.01.23 |
[๋ฐฑ์ค] 9506๋ฒ: ์ฝ์๋ค์ ํฉ (0) | 2020.01.23 |
๋๊ธ