• 약수의 합
def solution(n):
    answer = 0
    for i in range(1,n+1):
        if n%i==0:
            answer+=i
        
    return answer

<남의 풀이: 람다식>

def sumDivisor(num):
    return sum(filter(lambda x: num % x == 0, range(1, num + 1)))

 

 

 

  • 문자열 내 p와 y의 개수
    def solution(s):
        answer = True
        p=0
        y=0
        for i in s:
            if(i=="p" or i == "P"):
                p+=1
            elif(i=="y" or i=="Y"):
                y+=1
        if(p!= y):
            answer =False
        return answer​

<남의 풀이 : 집계함수 > --모두 다 소문자로 바꾼다. 함수를 잘쓰자.

def solution(s):
    # 함수를 완성하세요
    return s.lower().count('p') == s.lower().count('y')

 

'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

 

 

 

  • 같은 숫자는 싫어
    def solution(arr):
        answer = [arr[0]]
        
        for i in range(1,len(arr)):
            if arr[i] !=arr[i-1]:
                answer.append(arr[i])
    
        return answer​

<다름사람풀이: [-1:] 슬라이싱>

def solution(s):
    a = []
    for i in s:
        if a[-1:] == [i]: continue
        a.append(i)
    return a

 

 

  • 가운데글자 가져오기
    def solution(s):
        return s[(len(s)-1)//2:len(s)//2+1]​

 

  • x만큼 간격이 있는 n개의 숫자
    def solution(x, n):
        answer = []
        for i in range(1,n+1):
            answer.append(x*i)
        return answer​
    def solution(x, n):
        # 함수를 완성하세요
        return [i * x + x for i in range(n)]​
def solution(x, n):
    # 함수를 완성하세요
    return [i for i in range(x, x*n+1, x)]

'코드테스트' 카테고리의 다른 글

코딩테스트 lv.1 - 파이썬  (0) 2021.06.18
5.해쉬함수  (0) 2021.06.18
4.진법변환/비트연산  (0) 2021.06.17
3. 깊이우선탐색/ 너비탐색  (0) 2021.06.02
2.완전탐색/ 이분탐색  (0) 2021.05.30

프로그래머스 서울에서 김서방찾기.

 

프로그래머스 두 정수 사이의 합

 

https://dev-note-97.tistory.com/53

 

[프로그래머스] 두 정수 사이의 합 / Python

문제주소 :programmers.co.kr/learn/courses/30/lessons/12912 <문제 설명> 더보기 문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어..

dev-note-97.tistory.com

혼공파: switch  --best

min, max 쓰기

 

 

 

프로그래머스 수박수박수박수?

 

엄청 빠르다,,, 짧고 직관적

 

 

 

 

프로그래머스 가운데글자 가져오기

짝수일 경우, we를 가져와야함. [ : ]슬라이싱으로 가져올것

 

(len(s)-1)  //2: 중요! 

'코드테스트' 카테고리의 다른 글

lv.1- 프로그래머스 (파이썬)  (0) 2021.07.25
5.해쉬함수  (0) 2021.06.18
4.진법변환/비트연산  (0) 2021.06.17
3. 깊이우선탐색/ 너비탐색  (0) 2021.06.02
2.완전탐색/ 이분탐색  (0) 2021.05.30

해쉬함수: 검색과 저장이 용이함, key - value,  인덱스로 찾아야함. 

 

hash(1)= 'melon'

hash.pop(1)= 'melon'

del hash[1]

 

 

 

 

프로그래머스- 파이썬, 전화번호 목록

sort해서 비교하기

startswith 함수: startswith(찾을거, 시작점, 끝점)

 

'코드테스트' 카테고리의 다른 글

lv.1- 프로그래머스 (파이썬)  (0) 2021.07.25
코딩테스트 lv.1 - 파이썬  (0) 2021.06.18
4.진법변환/비트연산  (0) 2021.06.17
3. 깊이우선탐색/ 너비탐색  (0) 2021.06.02
2.완전탐색/ 이분탐색  (0) 2021.05.30

 

 

 

 

 

백준 5692번- 팩토리얼

 

import sys

sys.stdin().readline()  : 여러줄을 불러오는 함수. input보다 빠른가보다. std(ard) in(put)의 약자.

     input: 내장함수(evaluate 한다) , stdin: file object (버퍼로 문자열을 그대로 반환한다.)

 

8: n=='0' : sys.stdin.readline()이 문자열이라서 작은 따옴표, break을 안주면 런타임에러 발생

10: range( 1, len(n)+1) 괄호안에 범위를 제대로 주지 않으면 인덱스에러 발생.

 

 

다른코드:  l 리스트에다 1! , 2!, 3!, 4!, 5!을 집어넣고 시작한다. 

              [::-1]이 거꾸로 읽는 인덱스라서 써보고 싶었는데, 얘가 시간을 많이 잡아먹는듯, 123>> 321 

 

 

https://yang-wistory1009.tistory.com/54

 

[파이썬] 다양한 입력함수 input(), sys.stdin.readline(), rstrip(), lstrip(), strip() 사용 - 공부하는 도비

오늘은 파이썬의 다양한 입력 방법에 대해 알아보겠습니다. 파이썬에서 가장 자주 쓰는 입력 함수는 input()이 있죠? 하지만 입력 값을 수 백, 수 천개 받을 때는, 입출력 속도를 위해서 sys.stdin 함

yang-wistory1009.tistory.com

 

https://developeryuseon.tistory.com/90

 

[Python] input()과 sys.stdin

sys.stdin 알고리즘 문제를 풀 때, 파이썬의 input() 은 실행시간이 느려서 자주 시간초과가 난다. 이럴때 sys 모듈의 stdin 을 사용하면 더 빠르게 input이 가능하다.. 고 하는데, 나는 input() 과 sys.stdin 의

developeryuseon.tistory.com

 

'코드테스트' 카테고리의 다른 글

코딩테스트 lv.1 - 파이썬  (0) 2021.06.18
5.해쉬함수  (0) 2021.06.18
3. 깊이우선탐색/ 너비탐색  (0) 2021.06.02
2.완전탐색/ 이분탐색  (0) 2021.05.30
프로그래머스 1주차: 스택&큐  (0) 2021.05.19

1. DFS/BFS

 

DFS(depth first search): 깊이우선탐색

  미로. 한방향으로 가다가 더이상 못가면 가장 가까운 갈림길로 복귀. 

  다른방향으로 탐색

 :모든 노드를 방문- 스택

 

 

 

BFS( bread first search): 너비우선탐색

 시작정점으로부터 가장 가까운 정점을 먼저방문 

 멀리 떨어진 정점을 나중에 방문.

 : 두 노드 사이의 최단경로를 찾을때 -큐

 

 

'코드테스트' 카테고리의 다른 글

코딩테스트 lv.1 - 파이썬  (0) 2021.06.18
5.해쉬함수  (0) 2021.06.18
4.진법변환/비트연산  (0) 2021.06.17
2.완전탐색/ 이분탐색  (0) 2021.05.30
프로그래머스 1주차: 스택&큐  (0) 2021.05.19

완전탐색(brute force): 가능한 모든 경우의수를 다 구함. 오래걸림

  - 반복문

  - 재귀함수

 

def solution(trump):

    for i in range(len(trump)):

        if trump[i]==8:

            return i

     return -1

 

 

def solution(trump,loc):

    if trump[loc]==8:

        return loc

    else:

        return solution(trump,loc+1)

 

 

이분탐색: 정렬된 배열에서 특정한 값을 찾아내는 것. 임의의 값 선택.  찾고자하는 값 x 비교. 

             x기준으로 작으면 왼쪽. 크면 오른쪽으로 탐색.

 

 def solution(trump):

    left=0

    right= len(trump)-1

    while(left<=right):

        mid=(left+right)//2

        if trump[mid]==8:

            return mid

        elif trump[mid] <8:

            left=mid+1

        elif trump[mid]>8:

            right=mid-1

    return mid

 

 

기타:: 깊이우선탐색, 너비우선탐색, 문자열탐색, kmp, bm ,,,

 

 

'코드테스트' 카테고리의 다른 글

코딩테스트 lv.1 - 파이썬  (0) 2021.06.18
5.해쉬함수  (0) 2021.06.18
4.진법변환/비트연산  (0) 2021.06.17
3. 깊이우선탐색/ 너비탐색  (0) 2021.06.02
프로그래머스 1주차: 스택&큐  (0) 2021.05.19

스택: lifo. stack, peek, pop. 웹페이지 뒤로가기 앞으로가기.

큐: fifo. 프린터 인쇄대기열. 컨베이어 벨트

 

 

1-1)프로그래머스 주식가격

 

#강의에서 배운 스택(append) 이용해서 풀기

#문제내용 이해보다는 주어진 리스트값을 이용해서 결과값을 도출해내는것을 중점으로 접근해보기

#코드의 효율성도 중요하다. 

 

1-2)프로그래머스 기능개발

#pop함수 이용하기

#cnt+=1 위치에  따른 출력값 차이 인지하기

#zip 이용. 두 리스트를 1대1 대응할 수 있다. 

#append 뒤에 간단하게 if 조건 붙일 수 있다.

#if break문이 아직 낯선데, 익숙해지기

#import deque를 하지 않은이상, pop(0)을 제거하는것이 바람직

#계속 list range 에러 뜸

 

 

1-3)프로그래머스  다리를 지나는 트럭

 

 

#순서대로 지나가야 하니까 fifo. pop으로 풀기

#[0]으로 이뤄진 리스트 que에서 [0,트럭] [트럭,트럭] [트럭,0] [0,0] 이런순서로

#line10에 que[0]으로 했더니 답은 나오는데 실행속도가 너무 느림....#sum[que]로 바꾸니까 됐다. 

#이렇게 긴데 실행속도가 엄청 빠르다고함. 나도 이렇게 생각해보도록 해야지.

 

 

#deque? (덱) - 1,2번 문제풀이에서 모범답안에서 자주 쓰인 라이브러리.

double ended queue의 약자.

일차원 선형자료

스택과 큐의 연산을 모두지원. 양끝에서 삽입과 삭제가능.

시간도 짧게 걸린다! 

append

appendleft

insert

extend

pop

popleft

 

 

 

 

 

'코드테스트' 카테고리의 다른 글

코딩테스트 lv.1 - 파이썬  (0) 2021.06.18
5.해쉬함수  (0) 2021.06.18
4.진법변환/비트연산  (0) 2021.06.17
3. 깊이우선탐색/ 너비탐색  (0) 2021.06.02
2.완전탐색/ 이분탐색  (0) 2021.05.30

+ Recent posts