2021. 6. 24. 02:15ใ๐ป ๊ฐ๋ฐ/Algorithm
์ต๊ทผ ์ฝ๋ฉํ ์คํธ ๋ฐ๋ชจ ์์ ๋ก ๋์๋ ๋ฌธ์ ์ด๋ค.
https://programmers.co.kr/learn/courses/18/lessons/1878
์ธ๊ฐ์ ์ขํ๊ฐ ์
๋ ฅ์ผ๋ก ๋ค์ด์ค๊ณ , ์ง์ฌ๊ฐํ์ ๋ง๋ค๊ธฐ ์ํด์ ๋๋จธ์ง ํ๊ฐ์ ์ขํ๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค.
์ง์ฌ๊ฐํ์ ๊ฐ ๋ณ์ด x, y์ถ๊ณผ ํํํ๊ณ , ์ธ ์ ์ ๊ทธ๋ ค๋ณด๋ฉด x์ y์์ ํ๋ฒ์ฉ๋ง ๋์จ ๊ฐ์ ์ขํ๊ฐ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ๊ฒ๋๋ค.
์ ๋ต ์ฝ๋
def solution(v):
# x, y์ขํ๊ฐ ๋ค์ด๊ฐ ๋ฆฌ์คํธ
x = []
y = []
answer = []
# ์ด์ค๋ฐฐ์ด ์ํ
for i in v:
if i[0] not in x:
x.append(i[0])
else:
x.remove(i[0])
if i[1] not in y:
y.append(i[1])
else:
y.remove(i[1])
answer = x + y
return answer
x์ y ์ขํ๋ค์ ๊ฐ๊ฐ ๋ฐ๋ก ๋ฆฌ์คํธ ๋ง๋ค์ด์ฃผ๊ณ , ํ๋์ฉ ์ํํ๋ค.
์ด๋, ๋ฆฌ์คํธ์ ๋ค์ด์์ง ์์ ์ขํ๋ผ๋ฉด ํด๋น ์ขํ ๋ฆฌ์คํธ์ ์ฝ์
์์ผ์ฃผ๊ณ , ์๋๋ผ๋ฉด (์ด๋ฏธ ๋ค์ด์๋ ๊ฐ์ด๋ผ๋ฉด) ๋ฆฌ์คํธ์์ ์ ๊ฑฐํ๋ค.
์ด๋ ๊ฒํ๋ฉด ์ต์ข
์ ์ผ๋ก ์ค๋ณต๊ฐ์ด ์๋ ํ๋์ ์ขํ๋ง ๊ฐ๊ฐ ๋จ์์๊ฒ ๋๋ค.
๋ค๋ฅธ์ฌ๋ ํ์ด
1. ๋๋ค ํํ๋ฒ
def solution(v):
answer = []
x = sorted(list(map(lambda x:x[0], v)))
y = sorted(list(map(lambda y:y[1], v)))
if (x[0] != x[1]):
answer.append(x[0])
elif (x[0] == x[1]) :
answer.append(x[2])
if (y[0] != y[1]) :
answer.append(y[0])
elif(y[0] == y[1]):
answer.append(y[2])
return answer
๋๋ค๋ก ํ๊ณ ์ถ์๋๋ฐ ์์ง์ ์ต์ํ์ง ์์์ ์คํจ..!
์
๋ ฅ ๋ฐฐ์ด v์์ x์ y๊ฐ ๊ฐ๊ฐ์ ์ ๋ ฌ์์ผ์ฃผ๊ธฐ ์ํด ์์ฒ๋ผ ๋๋ค๋ฅผ ์ฌ์ฉํ๊ณ
๊ฐ ๋ฆฌ์คํธ์ ๊ฐ๋ค์ ์ธ๋ฑ์ค 0, 1, 2๋ฅผ ๊ฐ์ง๊ฒ ๋ ํ
๋ฐ ์ด๋, ์ฒ์๋ถํฐ ๋น๊ต ํ์ํด์ ๋๊ฐ์ ๊ฐ์ด ๊ฐ๋ค๋ฉด
๋ค๋ฅธ ํ๊ฐ์ ๊ฐ์ append, ๋ค๋ฅด๋ค๋ฉด ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค์ ๊ฐ์ append ์ํจ๋ค. (์ ๋ ฌํ์ผ๋ฏ๋ก ๋๋จธ์ง ๋๊ฐ๊ฐ ๊ฐ์ ๊ฐ์ด ๋๋ค.)
2. xor ์ฌ์ฉ
def solution(pos):
x = pos[0][0] ^ pos[1][0] ^ pos[2][0]
y = pos[0][1] ^ pos[1][1] ^ pos[2][1]
return [x,y]
๋นํธ์ฐ์ฐ์ XOR์ ์ฌ์ฉํด์ ํ์ดํ ๋ฐฉ๋ฒ์ด๋ค. ๋นํธ์ฐ์ฐ์ผ๋ก ํ๊ฑฐ๋ผ๊ณ ์๊ฐ๋ ๋ชปํ๋๋ฐ..!
์ด๋ค ์๋ฆฌ๋๋ฉด, ๊ฐ์๊ฐ 2๊ฐ์ ๋ค๋ฅธ๊ฐ 1๊ฐ๋ฅผ xor ์ฐ์ฐ์ํค๋ฉด ๋ค๋ฅธ๊ฐ 1๊ฐ๊ฐ ๋ฐํ๋๋ค๋ ์๋ฆฌ์ด๋ค.
a ^ a = 0
a ^ a ^ b = b
3. count() ์ฌ์ฉ
def solution(v):
# x, y์ขํ๊ฐ ๋ค์ด๊ฐ ๋ฆฌ์คํธ
x = []
y = []
# ์
๋ ฅ๋ ์ด์ค ๋ฆฌ์คํธ ํ์
for i in v:
x.append(i[0])
y.append(i[1])
# x์ขํ ๋ฆฌ์คํธ์ ๋๊ฐ์ ๊ฐ์ด ๋๊ฐ์๋ค๋ฉด
if x.count(i[0]) == 2:
# set()์ ์ฌ์ฉํด ์ค๋ณต์ ์ ๊ฑฐ, list๋ก ๋ณํํ ์ ๊ฑฐํ๋ค
x = list(set(x))
x.remove(i[0])
# y์ขํ: x์ ๋์ผํ๊ฒ ์ํ
if y.count(i[1]) == 2:
y = list(set(y))
y.remove(i[1])
# x์ y๋ฆฌ์คํธ ์ฐ๊ฒฐ
x.extend(y)
return x
์ฌ๊ธฐ์๋ ๋จ์ํ count()๋ฅผ ์ฌ์ฉํ์ง๋ง, collections ๋ชจ๋์ Counter ๊ฐ์ฒด๋ฅผ ๋ถ๋ฌ์๋ ๋๋ค.
์
๋ ฅ๋๋ 3๊ฐ์ ์ขํ์ค์์ x์ y๊ฐ ๊ฐ๊ฐ ๋๊ฐ์ ๊ฐ์ด 2๊ฐ์ธ ๊ฐ์ด ์๋ค.
์ด๋ค์ ์ ๊ฑฐํ๋ฉด ๋๋จธ์ง ํ์ ์ ์ขํ๊ฐ ๋์ค๊ฒ ๋๋๊ฒ.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ extend()๋ฅผ ์ฌ์ฉํ๋๋ฐ x.extend(y) ํ๊ฒ๋๋ฉด x๋ฆฌ์คํธ ์์ y์์๋ค์ ์ค๋ฅธ์ชฝ ๋์ ์ฝ์
ํ๋๊ฒ.
์ฐธ๊ณ ๋ธ๋ก๊ทธ: https://m.blog.naver.com/wideeyed/221541104629
์
๋ ฅ ์ขํ๊ฐ ์ธ๊ฐ๋ฟ์ด๋ผ ๋นํธ์ฐ์ฐ์๋ก ํ์ดํ ๋ฐฉ๋ฒ์ด ๊ฐ์ฅ ๊ฐ๋จํ๋ค.. ์กฐ๊ฑด๋ฌธ๋ ํ๋๋ ์์ฐ๊ณ ,,! ๐
'๐ป ๊ฐ๋ฐ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํํ Python (์นด์นด์ค ๊ธฐ์ถ) (0) | 2021.09.07 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ์ฑํ ๋ฐฉ (Python) (0) | 2021.08.13 |
๋ฐฑ์ค 9095: 1,2,3 ๋ํ๊ธฐ (DP) (0) | 2021.05.31 |
๋ฐฑ์ค 10826: ํผ๋ณด๋์น ์ 4 (DP) (0) | 2021.05.31 |
[์๋ฃ๊ตฌ์กฐ] ๋ฐํฌ(Deque)์ดํดํ๊ธฐ (0) | 2021.05.20 |