ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ๐ป ์ฝ๋ฉํ
์คํธ/Codility
Lesson 5: Prefix Sums → Genomic Range Query
dirmathfl 2020. 6. 7. 01:27728x90
๋ฐ์ํ
๋ฌธ์
https://app.codility.com/programmers/lessons/5-prefix_sums/genomic_range_query/
DNS ์ํ์ค๋ A, C, G, T๋ก ๋ํ๋ผ ์ ์๊ณ ๊ฐ๊ฐ์ impact factor๋ 1, 2, 3, 4์ด๋ค. P, Q ๋ฆฌ์คํธ๋ ๊ฐ๊ฐ ์์๊ณผ ๋์ ์ ๋ณด๋ฅผ ๊ฐ์ง๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
๋ง์ฝ CAGCCTA๋ผ๋ DNS ์ํ์ค๊ฐ ์ฃผ์ด์ง ๋ P[0] = 2, Q[0] = 4๋ผ๋ฉด DNS ์ํ์ค ์ค 2~4์ ํด๋นํ๋ ๊ฐ์ด ํ์ ๋ฒ์์ด๋ค. (CAGCCTA)
ํ์ ๋ฒ์ ์ค ๊ฐ์ฅ ์์ impact factor๋ฅผ ๊ฐ์ง๋ ๊ฐ์ ์ฐพ์์ ๋ฐํํ๋ฉด ๋๋ค.
๋ฌธ์ ํ์ด
prefix sum์ผ๋ก ํ ์ ์์ง๋ง, ์์ธ ์ฒ๋ฆฌ๋ก๋ ํด๋น ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค.
์ฝ๋
def solution(S, P, Q):
length = len(P)
answer = []
for i in range(length):
prefix = S[P[i]:Q[i] + 1]
try:
prefix.index('A')
answer.append(1)
except ValueError:
try:
prefix.index('C')
answer.append(2)
except ValueError:
try:
prefix.index('G')
answer.append(3)
except ValueError:
answer.append(4)
return answer
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > Codility' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lesson 5: Prefix Sums โ Passing Cars (0) | 2020.06.08 |
---|---|
Lesson 5: Prefix Sums โ Min Avg Two Slice (0) | 2020.06.08 |
Lesson 5: Prefix Sums โ Count Div (0) | 2020.06.07 |
Lesson 4: Counting Elements โ Perm Check (0) | 2020.06.06 |
Lesson 4: Counter Elements โ Missing Integer (0) | 2020.06.06 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ