728x90
lines = []
length = []
# 5줄 input받기
for i in range(5):
line = input()
lines.append(line)
length.append(len(line))
#5개 문장중에서 제일 긴 것의 수 찾기
string_to_return=""
#제일 긴 문장만큼 반복문돌려서 문장당 글자 하나씩 순서대로 출력
for i in range(max(length)):
for idx,line in enumerate(lines):
if(length[idx] > i):
string_to_return += line[i]
print(string_to_return)
https://www.acmicpc.net/problem/10798
1. 문제설명
→ 문제 요약(시간이 지나고 봐도 빠르게 파악이 가능하게 간단하게 정리할 것)
가로로 나열되어있는 글자들을 세로로 읽기
2. 접근 방식
→ 생각 과정 자세하게 적기
- 시간복잡도(있다면 적을 것)
- 문제 조건 분석 과정
- 최종 선택한 자료구조/알고리즘 혹은 풀이 방법
1. o(n) ?
2. 일단 한줄에 하나씩 출력해야하니까 제일 긴것의 길이만큼 반복문이 돌아야함.
근데 제일 긴거의 값이니까 다른것들은 당연히 짧을것이고 짧은 것들의 길이를 넘어가는 index를 출력하면 에러가 날 것임.
그래서 출력할 문장의 길이와 반복문의 index를 비교해서 i가 반복문의 길이보다 짧다면 출력할 값에 추가.
그 부분이 if(len(line) < i) 부분인데 반복문 돌때마다 거쳐야하니까 그게 좀 비효율적인 거 같음.
3. list 사용. 길이 구하기도 쉽고 index로 값 찾는것도 간편함
lines = []
# 5줄 input받기
for i in range(5):
lines.append(input())
#5개 문장중에서 제일 긴 것의 수 찾기
cnt = max(len(lines[0]),len(lines[1]),len(lines[2]),len(lines[3]),len(lines[4]))
string_to_return=""
#제일 긴 문장만큼 반복문돌려서 문장당 글자 하나씩 순서대로 출력
for i in range(cnt):
for line in lines:
if(len(line) > i):
string_to_return += line[i]
print(string_to_return)
3. 틀린 이유 설명
→ 어디서 막혔는지 왜 막혔는지 자세하게 기술
틀리진 않음
근데 뭔가 비효율적인것같음
4. 올바른 접근 방식 및 해결 방식
- 어떻게 해결했는지
- 올바른 접근 방식은 뭔지
lines = []
length = []
# 5줄 input받기
for i in range(5):
line = input()
lines.append(line)
length.append(len(line))
#5개 문장중에서 제일 긴 것의 수 찾기
string_to_return=""
#제일 긴 문장만큼 반복문돌려서 문장당 글자 하나씩 순서대로 출력
for i in range(max(length)):
for idx,line in enumerate(lines):
if(length[idx] > i):
string_to_return += line[i]
print(string_to_return)
각 라인의 길이를 따로 배열에 저장해봄.
근데 알고보니 python array의 len의 시간복잡도는 o(1)이라고 함.
뭐야 그럼 이거나 저거나 같네
속도가 오히려 느림
lines = []
length = []
# 5줄 input받기
for i in range(5):
line = input()
lines.append(line)
length.append(len(line))
#5개 문장중에서 제일 긴 것의 수 찾기
string_to_return=""
#제일 긴 문장만큼 반복문돌려서 문장당 글자 하나씩 순서대로 출력
for i in range(max(length)):
for j in range(5):
if(length[j] > i):
string_to_return += lines[j][i]
print(string_to_return)
2차배열로도 풀어봄
속도는 내가 처음에 푼거랑 똑같음
배워야할것 - 문제 입력예시를 보고 배열이 바로 떠올랐어야하는건데 안떠올랐음
728x90
'with my rubber duck > codingTest' 카테고리의 다른 글
토끼와 거북이 알고리즘 Floyd's Tortoise and Hare algorithm (0) | 2023.08.04 |
---|---|
bitwise operators (0) | 2023.07.12 |
11399 ATM 그리디 문제를 풀자..~ (1) | 2022.09.11 |
그리디 알고리즘 공부하기 (feat.동빈나 이코테 강의) (0) | 2022.07.29 |
[백준 10162]전자레인지 와 혼자 풀었따 (0) | 2022.07.28 |
댓글