[프로그래머스] 09/08 (6)

2021. 9. 8. 18:49·코딩테스트/프로그래머스[Python]

[소수 찾기]

My answer- 틀린코드

def solution(n):
    answer=0
    tmp=[0]*20001
    for i in range(2,n+1):
        tmp[i]=i
    for i in range(2,n+1):
        if tmp[i]==0:
            continue
        else:
            for j in range(i+i,n+1,i):
                tmp[j]=0
    for i in range(n+1):
        if(tmp[i]!=0):
            answer+=1
    return answer

Another answer

def solution(n):
    answer=0
    tmp=[1]*(n+1)
    m=int(n**0.5)
    # 제곱근까지만 봐도 약수의 개수는 변함없음 -> 전체 n+1까지 할 시 효율성이 떨어지게 된다.
    for i in range(2,m+1):
    # 처음엔 전부 1이 들어가있고, 2부터 자기자신을 제외한 그 수의 배수들을 0으로 바꿈 
        if tmp[i]==1:
            for j in range(i*i,n+1,i):
                tmp[j]=0
    for i in range(2,n+1):
        if(tmp[i]==1):
            answer+=1
    return answer
더보기

소수의 개수를 에라토스테네스의 체를 이용하여 구했는데, 우선 모든 배열에 1을 넣어놓은 뒤에 2부터 시작해서 범위내 2를 제외한 2의배수들을 없애고, 다음 3을 제외한 3의배수들을 없애고 이런식으로 반복하여 남은숫자들이 약수가 되는 방법이다. 이따 범위는 끝까지 할 필요가 없고, 그 수의 제곱근까지만 봐도 충분하다.

"에라토스테네스의 체"
https://namu.wiki/w/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98%20%EC%B2%B4

[서울에서 김서방 찾기]

My answer

def solution(seoul):
    answer = ''
    answer="김서방은 "+str(seoul.index("Kim"))+"에 있다"
    # answer="김서방은 %d에 있다" %seoul.index("Kim")
    return answer

[문자열 다루기]

My answer

def solution(s):
    answer = True
    answer=s.isdigit()
    if(len(s)!=4 and len(s)!=6):
        answer=False
    return answer

Another answer

def solution(s):
    return s.isdigit() and len(s) in (4, 6)
# 4 또는 6글자 판단을 if,else말고 in을 사용
# 정확한 숫자를 파악하고자 할 때는 isdemical()이 좋다. isdigit은 제곱같은 특수문자도 숫자로 인식
더보기

아래 코드는 in을 사용하여 글자길이를 판단했고, isdigit()을 사용하였는데 실질적으로 isdigit()은 숫자로 보이는 모든 예를들어 제곱같은 특수문자도 숫자로 인식하기 때문에 isdemical()을 사용하여 판단하는게 더 정확하다.

[문자열 내림차순]

My answer

def solution(s):
    answer=''
    tmp=list(s)
    tmp.sort(reverse=True)
    for i in tmp:
        answer+=i
    return answer

Another answer

def solution(s):
    return ''.join(sorted(s, reverse=True))
더보기

sort()와 sorted()의 차이점은 반환값의 유무이다. sort는 그냥 그 배열자체를 정렬해버리고 sorted는 반환값이 있다.

[문자열 내 p와 y의 개수]

My answer

def solution(s):
    answer = True
    s=s.lower()
    if(s.count('p')!=s.count('y')):
        answer=False
    if(s.count('p')==0 and s.count('y')==0):
        answer=True

    return answer

Another answer

def solution(s):    
    return s.lower().count('p') == s.lower().count('y')

[문자열 내 마음대로 정렬하기]

My answer

def solution(strings, n):
    
    s=list(strings)
    tmp=[0]*(len(s))
    tmp2=[0]*(len(s))
    
    # n번째 자리에 있는 글자를 맨앞으로 보내고 나머지를 뒤로 밀음
    for i in range(len(s)): 
        tmp[i]=""
        tmp[i]=s[i][n]+s[i][:n]+s[i][n+1:]
   # 이 상태에서 정렬하면 n번째 자리 알파벳을 기준으로 정렬하게 됨
    tmp.sort()
  # 원래 n번째 자리있는 알파벳을 원래대로 돌려넣음 
    for i in range(len(s)):
        tmp2[i]=""
        tmp2[i]=tmp[i][1:n+1]+tmp[i][0]+tmp[i][n+1:]
        
    return tmp2

Another answer

def solution(strings, n): 
	strings = [i[n]+i for i in strings] 
	strings.sort() 
return [i[1:] for i in strings]]

 

728x90

'코딩테스트 > 프로그래머스[Python]' 카테고리의 다른 글

[프로그래머스] 09/13 (3)  (0) 2021.09.13
[프로그래머스] 09/09 (3)  (0) 2021.09.09
[프로그래머스] 09/06 (2)  (0) 2021.09.06
[프로그래머스] 09/05 (12)  (0) 2021.09.05
[프로그래머스] 09/03 (3)  (0) 2021.09.03
'코딩테스트/프로그래머스[Python]' 카테고리의 다른 글
  • [프로그래머스] 09/13 (3)
  • [프로그래머스] 09/09 (3)
  • [프로그래머스] 09/06 (2)
  • [프로그래머스] 09/05 (12)
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (471)
      • 알쓸신잡 (79)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    나동빈
    이분탐색
    이코테
    그리디
    BFS
    파이썬
    dp
    이것이취업을위한코딩테스트다
    백준
    DFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3

HOME

HOME

상단으로

티스토리툴바