https://programmers.co.kr/learn/courses/30/lessons/42577
์ฝ๋
class Solution {
public boolean solution(String[] phone_book) {
boolean answer = true;
boolean flag = true;
for(int i=0; i<phone_book.length; i++) {
for(int j=0; j<phone_book.length; j++) {
// ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ
if(i!=j && phone_book[j].startsWith(phone_book[i])) {
answer = false;
flag = false;
break;
}
}
if(!flag)
break;
}
return answer;
}
}
ํ์ด
phone_book์ ๋ชจ๋ ์์๋ค์ ํ์ํ๋ค.
starsWith() ๋ฉ์๋๋ ๋์ ๋ฌธ์์ด์ด ํน์ ๋ฌธ์ ๋๋ ๋ฌธ์์ด๋ก ์์ํ๋์ง ์ฒดํฌํ๋ ํจ์๋ค.
์ ๋์ฌ๊ฐ ํ๋๋ง ์์ด๋ false๋ฅผ ๋ฆฌํดํ๋ฉด ๋๋ฏ๋ก, ์๊ฐ์ ์ผ๋ก ๋จ์ถ์ํค๊ธฐ ์ํด flag ๋ณ์๋ฅผ ์ ์ธํ๋๋ฐ,
๋ง์ฝ ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ => ๋ค์๋ถํฐ๋ ์ฐพ์ ํ์๋ ์์ผ๋ฏ๋ก for๋ฌธ์ ๋ชจ๋ ํ์ถํ๋ค.
์๊ฐ
phone_book ์ ๋ฒ์๋ 1,000,000 ์ดํ์ด๋ค.
๊ทธ๋์ ์์ ํ์์ ๋๋ฆฌ๋ฉด O(1,000,000 * 1,000,000) ์ผ๋ก ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ ์ค ์๊ณ ํด๋ดค๋๋ฐ,, ํจ์จ์ฑ์์ ํต๊ณผ๋ฅผ ํด์ ์ข ๋๋๋ค.
ํ ์คํธ ์ผ์ด์ค๊ฐ 100๋ง๋ฒ ์ ๋ถ ๋๋ ์ผ์ด์ค๊ฐ ์์ด์์ธ์ง, ์๋๋ฉด ํ๋ก๊ทธ๋๋จธ์ค๊ฐ ์๊ฐ(?)์ชฝ์์ ํํด์ ์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค . .
๋ค๋ฅธ ํ์ด
class Solution {
public boolean solution(String[] phoneBook) {
for(int i=0; i<phoneBook.length-1; i++) {
for(int j=i+1; j<phoneBook.length; j++) {
if(phoneBook[i].startsWith(phoneBook[j])) {return false;}
if(phoneBook[j].startsWith(phoneBook[i])) {return false;}
}
}
return true;
}
}
๋๋ ์ฒ์์๋ ๋ ๋ฒ์งธ for๋ฌธ์ j = i+1๋ถํฐ ๋๋ ค๋ดค์ง๋ง, ํ ์คํธ ์ผ์ด์ค์์ ํ๋ฆฌ๋ค๊ณ ๋์๋ค. ๋ฐ๋ก๊ฐ ์กด์ฌํ๋ค.
๋ง์ฝ phone_book ์ ์์๊ฐ ["1237" , "45" , "123"] ์ผ ๊ฒฝ์ฐ,
๋ ๋ฒ์งธ for๋ฌธ์ j=i+1๋ถํฐ ๋๋ฆฌ๊ฒ ๋๋ฉด, 123์ด 1237์ ์ ๋์ด์ง๋ง, ๊ฒ์ฌ๋ฅผ ํ์ง ๋ชปํ๊ฒ ๋๋ค.
๋ฐ๋ผ์ ์ ์ฝ๋์ฒ๋ผ i, j ๋๋ค ๋ฐ๋ณตํ๊ฒ ๋๋ค๋ฉด ์ ๋ต์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๋๋ค.
์์์ ๋ ๋ฒ ๊ฒ์ํ๋๊ฒ์ด for๋ฌธ ์ ๋ถ๋ฅผ ํ์ํ๋ ๊ฒ๋ณด๋ค ํจ์จ์ฑ ํ ์คํธ์์๋ ์๊ฐ์ด ์งง๋ค.
6.63ms => 0.86ms
๊ฑฐ์ 8๋ฐฐ ๊ฐ๋ ๊ฐ์ํ๋ค.
ํด์ ๋ฌธ์ ์ง๋ง, ํด์ ๋ฌธ์ ๊ฐ ์๋(?) ๋ฌธ์ ๋ค . .
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค[Java] - ์์ฅ(ํด์) (0) | 2020.03.06 |
---|---|
[๋ฐฑ์ค] 1062๋ฒ: ๊ฐ๋ฅด์นจ(์์ ํ์, ๋ฐฑํธ๋ํน) (0) | 2020.03.06 |
[๋ฐฑ์ค] 1748๋ฒ: ์ ์ด์ด ์ฐ๊ธฐ 1(๊ตฌํ) (0) | 2020.03.05 |
[๋ฐฑ์ค] 1912๋ฒ: ์ฐ์ํฉ(DP) (0) | 2020.03.05 |
[๋ฐฑ์ค] 3985๋ฒ: ๋กค ์ผ์ดํฌ(๊ตฌํ, ์๋ฎฌ๋ ์ด์ ) (0) | 2020.03.05 |
๋๊ธ