728x90

Total

728x90

    파이썬 내장함수 capitalize, title, 첫글자 대문자 변환

    # title() : 문장의 모든 단어의 첫 글자를 대문자로, 나머지는 소문자 # capitalize(): 문장의 첫 글자만 대문자로, 나머지는 소문자 s = "hello world, welcom to python" print(s.capitalize()) #result : 'Hello world, welcom to python' print(s.title()) #result : 'Hello World, Welcom To Python'

    파이썬 자료구조 set

    롤케이크 자르기 (해시, Counter, set) karla.tistory.com # add() 요소 추가 my_set = {10, 20, 30} my_set.add(40) # {10, 20, 30, 40} # remove() 요소 삭제 my_set = {10, 20, 30} my_set.remove(10) # {20, 30} # Intersection (교집합) set1 = {3, 4, 9, 1, 4, 2, 5, 6, 7, 8, 10} set2 = {5, 6, 7, 8, 9, 10} # {5, 6, 7, 8, 9, 10} # Union (합집합) set1 = {3, 4, 9, 1, 4, 2, 5, 6, 7, 8, 10} set2 = {5, 6, 7, 8, 9, 10} print(set1 | set2) ..

    롤케이크 자르기 (해시, Counter, set)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import Counter def solution(topping): dic = Counter(topping) set_dic = set() res = 0 for i in topping: dic[i] -= 1 set_dic.add(i) if dic[i] == 0: dic.pop(i) if len(dic) == len(set_dic): res += 1 return res

    햄버거 만들기 (스택)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(ingredient): s = [] cnt = 0 for i in ingredient: s.append(i) if s[-4:] == [1, 2, 3, 1]: cnt += 1 for _ in range(4): s.pop() return cnt

    택배 상자(스택, 큐)

    영재가 5개의 상자를 실어야 하며, 택배 기사님이 알려준 순서가 [4, 3, 1, 2, 5] 영재는 우선 첫 번째, 두 번째, 세 번째 상자를 보조 컨테이너 벨트에 보관합니다. 그 후 네 번째 상자를 트럭에 싣고 보조 컨테이너 벨트에서 세 번째 상자 빼서 트럭에싣습니다. 다음으로 첫 번째 상자를 실어야 하지만 보조 컨테이너 벨트에서는 두 번째 상자를, 기존의 컨테이너 벨트에는 다섯 번째 상자를 꺼낼 수 있기 때문에 더이상의 상자는 실을 수 없습니다. 따라서 트럭에는 2개의 상자만 실리게 됩니다. def solution(order): assist = [] i = 1 cnt = 0 while i != len(order)+1: assist.append(i) while assist and assist[-1] =..

    N-Queen (DFS)

    def dfs(queen, n, row): count = 0 if n == row: return 1 for col in range(n): queen[row] = col for x in range(row): if queen[x] == queen[row]: # 세로 break if abs(queen[x]-queen[row]) == (row-x): # 대각선 break else: count += dfs(queen, n, row+1) return count def solution(n): queen = [0]*n return dfs(queen, n, 0)

    모의고사 (반복되는 리스트 값 비교, 인덱스)

    def solution(answers): a=[1,2,3,4,5] b=[2,1,2,3,2,4,2,5] c=[3,3,1,1,2,2,4,4,5,5] t1=t2=t3=0 for i in range(len(answers)): if a[i%5]==answers[i]: t1+=1 if b[i%8]==answers[i]: t2+=1 if c[i%10]==answers[i]: t3+=1 maxval=max(t1,t2,t3) answer=[] if maxval == t1: answer.append(1) if maxval == t2: answer.append(2) if maxval == t3: answer.append(3) return answer

    부대복귀 (BFS, duque)

    from collections import deque def solution(n, roads, sources, destination): q = deque([destination]) graph = [[] for _ in range(n+1)] for s, e in roads: graph[s].append(e) graph[e].append(s) visit = [-1]*(n+1) visit[destination] = 0 while q: now = q.popleft() for x in graph[now]: if visit[x] == -1: visit[x] = visit[now]+1 q.append(x) return [visit[i] for i in sources]

    기사단원의 무기 (약수의 개수)

    def solution(number, limit, power): answer = 0 for x in range(1,number+1): cnt=0 for i in range(1, int(x**(1/2))+1): if x%i==0: cnt+=1 if i**2 != x: #제곱이 되는 약수 중복 방지 cnt+=1 if cnt>limit: cnt=power answer+=cnt return answer

    마법의 엘리베이터

    def solution(storey): answer = 0 while storey: r = storey % 10 print(storey,r) if r > 5:# 6 ~ 9 answer += (10-r) storey += 10 else: if r==5 and (storey // 10) % 10 > 4: storey += 10 answer+=r storey //= 10 return answer