전체 글 661

[프로그래머스] LEVEL1 시저암호, python3

def solution(s, n): answer = '' # 알파벳 26개, A 65 Z: 90 a:97 z:122 (space): 32 for i in s: if ord(i)==32: # case (SPACE) answer+=(i) continue elif (ord(i)>=65) & (ord(i)90: tmp-=26 answer+=(chr(tmp)) elif (ord(i)>=97) & (ord(i)122: tmp-=26 answer+=(chr(tmp)) return answer C에서는 character를 int로 찍으면 ascii code로 나타내주는데 파이썬은 ord()함수를 써야했다. ord()함수를 사용해서 (space)면 그대로 추가하고 upper나 lower 이면 시저암호를 돌리는 방식이다...

STUDY/Algorithm 2019.10.17

[프로그래머스] LEVEL1 소수 찾기, python3

첫번째 시도 def solution(n): answer = 0 prime_num=[] for i in range(2,n+1): for j in range(2,i+1): if (i%j==0): if (i!=j): break prime_num.append(i) answer = len(prime_num) return answer 효율이 좋지 않아서(시간초과되어서) 전체를 다 풀지 못하였다. 두번째 시도 def solution(n): answer = 0 prime_num=[] for i in range(2,n+1): chk=True for j in prime_num: if (i%j==0): # if i isnt primenum chk=False # chk changes false break if chk: # c..

STUDY/Algorithm 2019.10.17

[프로그래머스] LEVEL1 문자열 내림차순으로 배치하기, python3

def solution(s): answer = ''.join(sorted(s, reverse=True)) return answer 내가 해보고싶었지만 sort로 정렬할때마다 계속 NONE 값이 나와서 진행을 하지 못하였다. 여기서 배운건 join 함수와 sorted 함수이다. join() 함수는 문자열을 추가할수 있는 함수이다. 출처: https://wikidocs.net/13 지난번 혼공파(혼자공부하는파이썬)에서 문자열 관련 함수들을 대충보고 넘어갔는데 여기서 쓰일줄 몰랐다. sorted()함수는 정렬 해주는 함수이다. sort와 sorted의 차이는 다음과 같다. 출처: https://ychae-leah.tistory.com/9 list.sort() / string.sort(): 원본을 직접 정렬, ..

STUDY/Algorithm 2019.10.16

[프로그래머스] LEVEL 1 문자열 내 마음대로 정렬하기, python3

import collections def solution(strings, n): answer = [] cp_str=[] len_str=len(strings) for i in range(len_str): cp_str.append(strings[i][n]) cp_str.sort() # 인덱스 값끼리 정렬 cp_str=list(collections.Counter(cp_str).keys()) # 중복값 제거 for i in range(len(cp_str)): cnt=0 ex=[] # 인덱스 값이 중복되는 strings 저장 for j in range(len_str): if strings[j][n]==cp_str[i]: # strings의 n번째와 cp_str이 같으면 ex에 추가 cnt+=1 ex.append(..

STUDY/Algorithm 2019.10.16