프로그래머스 완주하지 못한 선수 Python 정답은 정답인데, 효율성에서 점수를 제대로 못 얻고 있다. 검색을 통해 입력된 값을 sort하면 시간 단축이 이뤄진다고 해서 시도했지만, 일부 케이스만 만족하고 모든 케이스의 효율성을 만족하지 못하고 있다. def solution(participant, completion): participant.sort() completion.sort() answer = '' for k in range(len(completion)): if completion[k] in participant: participant.remove(completion[k]) answer = participant.pop() return answer * https://programmers.co.kr/learn/courses/30/lessons/.. 2021. 7. 29. 코드업 6098 성실한 개미 Python 리스트 안에 리스트를 넣은 (0,0)으로 시작하는 [x][y] 좌표의 ary를 만든다. 좌표 배열과 관련한 문제는 코딩 테스트의 단골이니, 익숙해지면 좋을 것 같다. ary = [] for i in range(10): temp=list(map(int,input().split())) ary.append(temp) x=1 y=1 ary[x][y] = 9 ## (2,2)지점에서 출발 for i in range(10): for j in range(10): if ary[i][j] == 1: ## 장애물 ary[i][j] = 1 elif ary[i][j] == 9 and ary[i][j+1] == 0: ## 우측 이동 ary[i][j+1] = 9 elif ary[i][j] == 9 and ary[i][j+1] ==.. 2021. 7. 28. 백준 2562 최댓값 Python for 함수와 append를 활용하여 간단히 여러줄의 input값을 하나의 리스트로 받을 수 있다. n = [] for i in range(1, 10): n.append(int(input())) if i < 10: continue print(max(n)) print(n.index(max(n))+1) https://www.acmicpc.net/problem/2562 2021. 7. 18. 백준 1110 더하기 사이클 Python 생각보다 많이 까다로웠다. int 형식과 str 형식을 넘나들며 자릿수를 더하고 붙이는 사이클을 만드는 코딩이었다. 겨우 정답을 만들어내고 제출된 답안 목록을 보다가 유독 짧게 완성하신 분이 있었다. 살펴보니 10으로 나눠서 십의자리와 일의자리를 분리한 것을 보고 무릎을 팍 쳤다. 이랬으면 정말 간단했을텐데! 문제를 단순히 그대로 옮기는 것도 중요하지만, 숫자를 활용하는 아이디어를 도출해내는 것도 중요하다는 생각이 들었다. import sys input = sys.stdin.readline i = 0 first = input() second = first while 1: if int(second) < 10: ## 한자릿수에 0붙여 두자리 만들기 second = "0" + second else: secon.. 2021. 7. 18. 백준 10951 A+B Python EOF와 try-except에 대한 이해가 필요한 문제였다. EOF란 End of File의 약자로, EOF Error는 문서가 갑작스럽게 종료되어 발생한 에러를 말한다. 이를 방지하기 위해 try-except를 활용하여 예외처리를 하는 것이다. 이 문제에서는 while이 작동 중 에러 발생시 break하도록 되어 있다. import sys input = sys.stdin.readline while 1: try : A,B = list(map(int,input().split(" "))) print(A+B) except: break https://www.acmicpc.net/problem/10951 2021. 7. 16. input() 함수 시간초과 코딩테스트에서 input() 함수를 사용하면 시간초과로 채점조차 되지 않은 경우가 많다. 이 경우 sys 라이브러리를 불러와 아래와 같이 대체하면 시간초과로 인한 어려움을 해결할 수 있다. import sys imput = sys.stdin.readline a = input() 2021. 7. 14. 백준 13458 시험감독 Python 제시된 문제에서의 예제는 모두 이상없이 출력되었는데, 자꾸 틀렸다는 결과를 보여줘서 한참 애를 먹었다. 결국 다른 사람들의 질문글을 몇 개 읽고 반례를 찾을 수 있었다. 예제에는 없지만 1개 시험장의 응시자 수보다 총감독관이 감시 가능한 인원이 크면 음수값을 가지게 된다. 이 경우에 대한 고려가 필요하다. import sys imput = sys.stdin.readline N=int(input()) #시험장 개수 = 총감독관 수 A = list(map(int,input().split())) #시험장 1개 내 응시자수 b,c = map(int,input().split()) m = 0 for k in A: k = k - b #응시자수 - 총감독관이 감시 가능한 응시자수 = 부감독관이 봐야하는 사람수 if k.. 2021. 7. 14. 이전 1 2 3 다음