[백준] 1969. DNA
문제
풀이
- board 배열을 세로로 돌면서 각 문자의 갯수를 count 함.
- count한 결과를 dictionary tmp에 저장해 줌.
- items()함수를 사용하여 key, value를 list형태로 return 받음.
- 문제의 조건대로 갯수는 내림차순, 알파벳은 오름차순으로 정렬함.
- 가장 빈출된 알파벳은 res에 넣어주고, 나머지는 count에 추가 함.
- res배열은 join함수를 통해 문자열로 만들어주고, count는 sum해서 출력해줌.
코드
import sys
def dna() :
n, m = map(int, sys.stdin.readline().split())
board = [sys.stdin.readline().rstrip() for _ in range(n)]
res = []
count = []
for i in range(m) :
tmp = dict()
for j in range(n) :
if board[j][i] not in tmp.keys() :
tmp[board[j][i]] = 1
else :
tmp[board[j][i]] += 1
tmp = list(tmp.items())
tmp.sort(key = lambda x : (-x[1], x[0]))
res.append(tmp[0][0])
if len(tmp) != 1 :
for i in range(1, len(tmp)) :
count.append(tmp[i][1])
print(''.join(res))
print(sum(count))
dna()
Author And Source
이 문제에 관하여([백준] 1969. DNA), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@tldjfj123/백준-1969.-DNA
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
- board 배열을 세로로 돌면서 각 문자의 갯수를 count 함.
- count한 결과를 dictionary tmp에 저장해 줌.
- items()함수를 사용하여 key, value를 list형태로 return 받음.
- 문제의 조건대로 갯수는 내림차순, 알파벳은 오름차순으로 정렬함.
- 가장 빈출된 알파벳은 res에 넣어주고, 나머지는 count에 추가 함.
- res배열은 join함수를 통해 문자열로 만들어주고, count는 sum해서 출력해줌.
코드
import sys
def dna() :
n, m = map(int, sys.stdin.readline().split())
board = [sys.stdin.readline().rstrip() for _ in range(n)]
res = []
count = []
for i in range(m) :
tmp = dict()
for j in range(n) :
if board[j][i] not in tmp.keys() :
tmp[board[j][i]] = 1
else :
tmp[board[j][i]] += 1
tmp = list(tmp.items())
tmp.sort(key = lambda x : (-x[1], x[0]))
res.append(tmp[0][0])
if len(tmp) != 1 :
for i in range(1, len(tmp)) :
count.append(tmp[i][1])
print(''.join(res))
print(sum(count))
dna()
Author And Source
이 문제에 관하여([백준] 1969. DNA), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@tldjfj123/백준-1969.-DNA
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import sys
def dna() :
n, m = map(int, sys.stdin.readline().split())
board = [sys.stdin.readline().rstrip() for _ in range(n)]
res = []
count = []
for i in range(m) :
tmp = dict()
for j in range(n) :
if board[j][i] not in tmp.keys() :
tmp[board[j][i]] = 1
else :
tmp[board[j][i]] += 1
tmp = list(tmp.items())
tmp.sort(key = lambda x : (-x[1], x[0]))
res.append(tmp[0][0])
if len(tmp) != 1 :
for i in range(1, len(tmp)) :
count.append(tmp[i][1])
print(''.join(res))
print(sum(count))
dna()
Author And Source
이 문제에 관하여([백준] 1969. DNA), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tldjfj123/백준-1969.-DNA저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)