본문 바로가기

알고리즘 공부

(207)
[프로그래머스] 짝수와 홀수 https://programmers.co.kr/learn/courses/30/lessons/12937 코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 Even을 반환하고 홀수인 경우 Odd를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 Odd 4 Even programmers.co.kr [정답] def solution(num): if num%2==1: answer="Odd" else: answer="Even" return answer
[프로그래머스] 문자열을 정수로 바꾸기 https://programmers.co.kr/learn/courses/30/lessons/12925 코딩테스트 연습 - 문자열을 정수로 바꾸기 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니 programmers.co.kr [정답] def solution(s): answer = int(s) return answer
[프로그래머스] 가운데 글자 가져오기 https://programmers.co.kr/learn/courses/30/lessons/12903 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr [정답] def solution(s): if len(s)%2==1: answer = s[(len(s)-1)//2] else: answer = s[len(s)//2-1]+s[len(s)//2] return answer
[백준 파이썬] #1427: 소트인사이드 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net [정답] import sys N=sys.stdin.readline() N_list=[] for i in range(len(N)-1): N_list.append(int(N[i]))) N_list.sort(reverse=True) for k in N_list: print(k,end="") split()함수가 너무 익숙해서 무의식적으로 split()함수를 적었다가 '1 2 3'형태가 아닌 '123'형태인 것을 보고 바로 바꾸었다. 배열명.sort(reverse=True) : 배열의 내림차순..
[백준 파이썬] #4153: 직각삼각형 https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net [정답] import sys while True: string=sys.stdin.readline() s_list=list(map(int,string.split())) if sum(s_list)==0: #0 0 0이 입력되면 끝나야 하므로 합이 0일때 끝내준다. break max_num=max(s_list) #s_list에서 가장 큰 값을 max_num으로 정의 s_list.remove(max_num) if max_..
[백준 파이썬] #2941: 크로아티아 알파벳 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net [정답] list=['c=','c-','dz=','d-','lj','nj','s=','z='] word=input() for i in list: word=word.replace(i,'*') print(len(word))
[백준 파이썬] #2869: 달팽이는 올라가고 싶다 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net [정답] import sys A,B,V=map(int,sys.stdin.readline().split()) day=0 day=(V-B)/(A-B) if day==int(day): print(int(day)) else: print(int(day)+1) [오답 → 시간 초과] import sys A,B,V=map(int,sys.stdin.readline().split()) position,date=0,0 while True: date+=1 position+=..
[백준 파이썬] #2751: 수 정렬하기 2 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net [정답] import sys N=int(sys.stdin.readline()) n_list=[] for i in range(N): num=int(sys.stdin.readline()) n_list.append(num) n_list.sort() for k in n_list: print(k) 문제들을 풀다보면, 시간초과 에러가 많이 뜬다. 근데 시간초과 에러가 뜨면, 무엇을 고쳐야 하는지..