๐๋ฌธ์ ์ถ์ฒ : https://www.acmicpc.net/problem/1152
๐code ์ ์ฅ์ : hayannn/CodingTest_Java_NKLCBHub/#1152 ๋จ์ด์ ๊ฐ์
์์ด ๋์๋ฌธ์์ ๊ณต๋ฐฑ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ์ ๋ ฅํ๊ณ , ๊ทธ ์์์ ๋จ์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ ๋๋ค.
๐จ ์ฃผ์์ฌํญ
- ๋จ์ด์ ๊ธฐ์ค์ ๊ณต๋ฐฑ์ด๋ฉฐ, ๋ฌธ์์ด์ ๋งจ ์๊ณผ ๋งจ ๋ค์๋ ๊ณต๋ฐฑ์ด ์ฌ ์ ์๋ค๋ ํน์ด ์ฌํญ์ด ์์์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
๐๊ณต๋ถํ ๋ด์ฉ - [Java] ๋ฐฑ์ค 1152. ๋จ์ด์ ๊ฐ์#Split
๐ ํ์ด ๊ณผ์ ๋ฐ ์ฝ๋
import java.util.Scanner;
public class BJ1152 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine().trim(); //๋ฌธ์์ด ์
๋ ฅ ๋ฐ๊ธฐ
if(string.isEmpty()) // ๋ฌธ์์ด์ ๊ณต๋ฐฑ๋ง ์
๋ ฅ๋ ๊ฒฝ์ฐ
System.out.println('0'); // 0 ๋ฐํ
else
System.out.println(string.split(" ", -1).length); //๋จ์ด ๊ฐ์ ์ถ๋ ฅ
}
}
๐๊ณต๋ถํ ๋ด์ฉ - [Java] ๋ฐฑ์ค 1152. ๋จ์ด์ ๊ฐ์#stringtokenizer
๐ ํ์ด ๊ณผ์ ๋ฐ ์ฝ๋
CountTokens()
import java.util.Scanner;
import java.util.StringTokenizer;
public class BJ1152TWO {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine(); //๋ฌธ์์ด ์
๋ ฅ ๋ฐ๊ธฐ
StringTokenizer stringTokenizer = new StringTokenizer(string, " "); //stringTokenizer๋ฅผ ๊ณต๋ฐฑ ๊ธฐ์ค์ผ๋ก ์ ์ธ
System.out.println(stringTokenizer.countTokens()); // Token ๊ฐ์ ์ถ๋ ฅ
}
}
๐๊ณต๋ถํ ๋ด์ฉ - [Java] ๋ฐฑ์ค 1152. ๋จ์ด์ ๊ฐ์#split vs stringtokenizer
Split + trim
- ๋ฉ๋ชจ๋ฆฌ : 38724KB
- ์๊ฐ : 528ms
- ์ฝ๋ ๊ธธ์ด : 336B
StringTokenizer
- ๋ฉ๋ชจ๋ฆฌ : 30140KB
- ์๊ฐ : 472ms
- ์ฝ๋ ๊ธธ์ด : 324B
๋ฐ์ดํฐ ์์ด ์ ์ ๊ฒฝ์ฐ๋ฅผ ์ ์ ๋ก ํ ๊ฒฝ์ฐ
โก๏ธ ์ฑ๋ฅ : StringTokenizer > Split
๋จ, ๋ฐ์ดํฐ์ ์์ด ๋ง์์ง๋ค๋ฉด ๋ ๊ฐ์ง์ ์ฑ๋ฅ์ ํฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค.