본문 바로가기

알고리즘 공부

(207)
[백준 파이썬] #10809: 알파벳 찾기 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net [정답] S=input() S_list=list(S) E_list=[] for i in range(26): E_list.append(-1) for k in range(len(S_list)): if E_list[int(ord(S_list[k]))-97]!=-1: continue E_list[int(ord(S_list[k]))-97]=k for i in range(26): print(E_..
[백준 파이썬] #2675: 문자열 반복 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net [정답] T=int(input()) for i in range(T): S_list=[] string="" R,S=input().split() S_list=list(S) for k in range(len(S_list)): string+=S_list[k]*int(R) print(string)
[백준 파이썬] #1712: 손익분기점 https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net [정답] A,B,C=map(int,(input().split())) if B>=C: print("-1") else: print(A//(C-B)+1) 이 문제는 시간 초과, 런타임 에러, 틀렸습니다.. 등 많은 과정을 거친 후에 정답을 맞췄다. A,B,C=map(int,(input().split())) if B>=C: print("-1") else: b_e_p=A//(C-B)+1 print(b_e_p) ..
[백준 파이썬] #1152: 단어의 개수 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 www.acmicpc.net [정답] sentence=list(input().split()) print(len(sentence)) 쉬운 문제인데, 정답률이 27%이다..
[백준 파이썬] #15596: 정수 N개의 합 https://www.acmicpc.net/problem/15596 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Python 2, PyPy2, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang) www.acmicpc.net [정답] def solve(a): ans=0 for i in range(len(a)): ans+=int(a[i]) return ans
[백준 파이썬] #2839: 설탕 배달 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net [정답] N=int(input()) count=0 #정확하게 Nkg을 만들 수 없을 경우를 위한 변수 A=N//5 for i in range(A,-1,-1): B=(N-5*i)//3 if((N-5*i)%3==0) and i*5+B*3==N: print(i+B) count+=1 break if count==0: print(-1) 새로운 유형의 문제라서 재밌었다. 코딩하려면 수학을 잘해야 한다고 하는데, 이것이..
[백준 파이썬] #11720: 숫자의 합 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net [정답] N=int(input()) num_list=list(input()) sum=0 for i in range(N): sum+=int(num_list[i]) print(sum) 맨날 input().split()만 사용해서 약간 헷갈렸던 문제이다. ex) score_list=list(input().split()) input().split()은 빈칸을 기준으로 input값을 나누는 것이다. input값이 "54321"일때, 1) num_list=list(input())의 경우, ..
[백준 파이썬] #11654: 아스키 코드 https://www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net [정답] N=input() print(ord(N)) ord() 문자열을 아스키코드로 바꿔주는 함수 사용방법 : ord(문자열) ex) 'A'→65/ 'C'→67/ '0'→48/ 'a'→97