-
728x90
๐ ๋ฌธ์ ์ค๋ช
๋ฌธ์์ด
code
๊ฐ ์ฃผ์ด์ง๋๋ค.code
๋ฅผ ์์์๋ถํฐ ์ฝ์ผ๋ฉด์ ๋ง์ฝ ๋ฌธ์๊ฐ "1"์ด๋ฉด mode๋ฅผ ๋ฐ๊ฟ๋๋ค. mode์ ๋ฐ๋ผ code๋ฅผ ์ฝ์ด๊ฐ๋ฉด์ ๋ฌธ์์ด ret์ ๋ง๋ค์ด๋ ๋๋ค.mode
๋ 0๊ณผ 1์ด ์์ผ๋ฉฐ, idx๋ฅผ 0 ๋ถํฐ code์ ๊ธธ์ด - 1 ๊น์ง 1์ฉ ํค์๋๊ฐ๋ฉด์ code[idx]์ ๊ฐ์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ด ํ๋ํฉ๋๋ค.mode
๊ฐ 0์ผ ๋ code[idx]๊ฐ "1"์ด ์๋๋ฉด idx๊ฐ ์ง์์ผ ๋๋ง ret์ ๋งจ ๋ค์ code[idx]๋ฅผ ์ถ๊ฐํฉ๋๋ค.
code[idx]๊ฐ "1"์ด๋ฉด mode๋ฅผ 0์์ 1๋ก ๋ฐ๊ฟ๋๋ค.mode
๊ฐ 1์ผ ๋
code[idx]๊ฐ "1"์ด ์๋๋ฉด idx๊ฐ ํ์์ผ ๋๋ง ret์ ๋งจ ๋ค์ code[idx]๋ฅผ ์ถ๊ฐํฉ๋๋ค.
code[idx]๊ฐ "1"์ด๋ฉด mode๋ฅผ 1์์ 0์ผ๋ก ๋ฐ๊ฟ๋๋ค.
๋ฌธ์์ด code๋ฅผ ํตํด ๋ง๋ค์ด์ง ๋ฌธ์์ด ret๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.๋จ, ์์ํ ๋ mode๋ 0์ด๋ฉฐ, return ํ๋ ค๋ ret๊ฐ ๋ง์ฝ ๋น ๋ฌธ์์ด์ด๋ผ๋ฉด ๋์ "EMPTY"๋ฅผ return ํฉ๋๋ค.
๐ ์ ํ ์ฌํญ
- 1 ≤
code
์ ๊ธธ์ด ≤ 100,000code
๋ ์ํ๋ฒณ ์๋ฌธ์ ๋๋ "1"๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ๋๋ค.
๐ ๋ต์
class Solution { public String solution(String code) { String answer = ""; int mode = 0; String [] str = code.split(""); for(int i=0; i<str.length; i++) { if(str[i].equals("1")) { mode = mode == 1? 0:1; continue; } if(mode==0&&i%2==0) { answer += str[i]; }else if(mode==1&&i%2==1) { answer += str[i]; } } return answer.length()>0?answer:"EMPTY"; } }
๋ฌธ์ ์์ ์ฃผ์ด์ง ๋ฌธ์์ด์ ์์์๋ถํฐ ํ ๊ธ์์ฉ ์ฝ์ผ๋ฉด์ ํ์ธํ๋ ค๋ฉด
split()
์ ํตํด ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ง๋ค๊ฑฐ๋charAt()
์ ์ด์ฉํด์ ํ๊ธ์์ฉ ๋ผ์ด๊ฐ๋ฉด์ ํ์ธํ ์ ์๋ค.๋๋
split()
์ ํตํด ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ง๋ค์ด for๋ฌธ์ ๋๋ ธ๋ค. for๋ฌธ์ ๋๋ฉด์ ๋ฌธ์์ด์ด 1๊ณผ ๊ฐ๋ค๋ฉดmode
๋ฅผ 0๋๋ 1๋ก ๋ฐ๊ฟ์ค์ผํ๋๋ฐ if๋ฌธ์ ์ฌ์ฉํด๋ ๋์ง๋ง ์ผํญ์ฐ์ฐ์๋ฅผ ํตํด์ ์ข ๋ ๊ฐ๋จํ๊ฒ ํํํ๋ค.๊ทธ๋ฆฌ๊ณ
mode
๊ฐ 0์ด๋ฉด์ ์ธ๋ฑ์ค๊ฐ ์ง์์ด๊ฑฐ๋, ๋ฐ๋๋ก mode๊ฐ 1์ด๋ฉด์ ์ธ๋ฑ์ค๊ฐ ํ์์ธ๊ฒฝ์ฐ answer์ ๊ธ์๋ฅผ ๋ํด์ค๋ค. return ํ ๋๋ ์ผํญ์ฐ์ฐ์๋ฅผ ์ด์ฉํด์ answer์ ๋ฌธ์์ด ๊ธธ์ด๊ฐ 0๋ณด๋ค ํฌ๋ค๋ฉด answer ๋ฌธ์์ด์ ๊ทธ๋๋ก ๋ฆฌํดํ๊ณ ๊ธธ์ด๊ฐ 0๋ณด๋ค ์๋ค, ์ฆ answer์ ์ ์ฅ๋ ๋ฌธ์์ด์ด ์๋ค๋ฉด EMPTY๋ฅผ ๋ฆฌํดํ๋ค.๐ก ์ฐธ๊ณ
๋ฐฐ์ด.length
: ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ฆฌํด๋ฌธ์์ด.length()
: ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฆฌํด๋ฌธ์์ด.split(๊ตฌ๋ถ์)
: ๊ตฌ๋ถ์๋ฅผ ํตํด ๋ฌธ์์ด์ ์๋ผ๋ด์ ๋ฐฐ์ด๋ก ๋ณํ, ๊ตฌ๋ถ์๊ฐ ์๋ค๋ฉด ํ๊ธ์์ฉ ๋์ด์ ๋ฐฐ์ด๋ก ๋ฐํ
728x90'algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ป ์๋ฐ ์๊ณ ๋ฆฌ์ฆ - ์ด์ด ๋ถ์ธ ์ (0) 2023.09.18 ๐ป ์๋ฐ ์๊ณ ๋ฆฌ์ฆ - ์์๋ค์ ๊ณฑ๊ณผ ํฉ (0) 2023.09.18 ๐ป ์๋ฐ ์๊ณ ๋ฆฌ์ฆ - ๋คํญ์ ๋ํ๊ธฐ (0) 2023.09.15 ๐ป ์๋ฐ ์๊ณ ๋ฆฌ์ฆ - ์ ์ฃผ์ ์ซ์ 3 (0) 2023.09.14 ๐ป ์๋ฐ ์๊ณ ๋ฆฌ์ฆ - ์ต๋๊ฐ ๋ง๋ค๊ธฐ (2) (0) 2023.09.11 - 1 ≤