코딩테스트 공부 (12) 썸네일형 리스트형 [리스트 원소를 한 줄로 출력] result=['a', 'd', 'k', 'k', '9'] 다음과 같은 list의 원소들을 한 줄로 출력하는 방법은 2가지가 있다. 1. ''.join() 함수 이용하기 ' print('>'.join(result)) #'이 안에 각 원소 사이 들어갈 문자열을 입력하면 된다. ' 2. end = ' ' 이용하기 for i in range(len(result)): print(result[i],end='>') #'이 안에 각 원소 뒤에 붙을 문자열을 입력하면 된다.' 두 방법의 결과물 : 1. a>d>k>k>9 2. a>d>k>k>9> [data.isalpha() :data가 문자인지 아닌지?] result=['a', 'd', 'k', 'k', '15'] 위와 같은 리스트가 있을 때 result의 각 원소가 문자인지 아닌지를 알아보자. 나는 처음에 isalpha()라는 함수를 몰랐어서 ord() 함수를 이용해서 문제를 풀었었다. - https://hanyangsw.tistory.com/23?category=1018122 "문자를 숫자로 차례대로 바꾸고 싶을 때" 참조 for i in range(len(result)): if ord(result[i]) [문자를 순서대로 숫자로? a->1 , b->2] a는 1로 b는 2로 .... 이 순서대로 바꾸고 싶다면 if 문을 써서 문자 a를 만나면 1이다, b를 만나면 2다 .... 처럼 할 수도 있지만 ord('알파벳') 함수를 쓰면 쉽게 바꿀 수 있다. print(ord('a')) print(ord('A')) 위 코드의 결과로 다음과 같이 나온다. 97 65 따라서 소문자 a를 1로 바꾸는 기준으로 원하는 알파벳을 숫자로 바꾸고 싶다면 다음과 같이 실행시키면된다 # print(ord('원하는 알파벳')-ord('a')+1) print(ord('c')-ord('a')+1) 실행결과 : 3 알파벳,숫자,한글 모두 위와 같이 바꿀 수 있다. print('0:',ord('0')) print('1:',ord('1')) print('9:',ord('9')) prin.. [백준 1748 파이썬] 구현 유형이다. # 1748 n=input() length=len(n) sum=0 if length==1: print(int(n)) else: for i in range(1,length): sum += i*(9*10**(i-1)) sum += length*(int(n)-(10**i)+1) print(sum) [백준 11866 파이썬] 구현 유형이다 문제는 어렵지 않았지만 print하는데 어려움이 있었다 ㅎ 원소가 문자로만 이루어진 리스트 (ex. list= ['3', '4'] )의 원소를 한 줄로 출력하고 싶을 때: 즉 3,4 로 출력하고 싶을 때 다음과 같이 쓰면 된다. '원소 사이 나누는 문자'.join(리스트) n,k = map(int,input().split()) a=list(range(1,n+1)) period=k result=[] for i in range(len(a)): while k >len(a) : k=k-len(a) result.append(str(a.pop(k-1))) k=k+period-1 print('',sep='') [백준 1051 파이썬] 처음에 내가 푼 방법 : import sys n,m = map(int,sys.stdin.readline().split()) data=[input() for _ in range(n)] result =[1] for k in range(1,min(n,m)): for i in range(n): for j in range(m): if i+k [백준 11279 파이썬] 최대힙을 구현하는 문제이다. 파이썬의 heapq를 import해서 구현했다. 최소힙을 구현하는 방식과 같지만 heapq.heappush를 할 때 -부호를 붙혀주고 출력할 때도 -를 붙혀주면 된다. 시간 초과가 뜬다면 input() 대신 sys를 import 하고 sys.stdin.readline() 를 쓰면된다. import heapq n=int(input()) data=[int(input()) for _ in range(n)] max_heap=[] for value in data: if value ==0 : if max_heap==[] : print(0) else: print(-(heapq.heappop(max_heap))) else : heapq.heappush(max_heap,-value) [백준 1927 파이썬] 최소힙을 구현하는 문제이다. 파이썬의 heapq를 import해서 구현했다. 시간 초과가 뜬다면 input() 대신 sys를 import 하고 sys.stdin.readline() 를 쓰면된다. #1927 import heapq min_heap=[] n=int(input()) data=[int(input()) for _ in range(n)] min_heap=[] for value in data: if value ==0 : if min_heap==[] : print(0) else: print(heapq.heappop(min_heap)) else : heapq.heappush(min_heap,value) 이전 1 2 다음