728x90
반응형

처음에 어떻게 틀렸는지도 모르겠다. 디게 쉬운 문젠데, 처음에 풀 떄는 왜 틀렸지.

 

내가 맞힌 정답::

def solution(slice, n):
    answer = 0

    if n % slice == 0:
        answer = n/slice
    else :
        answer = int(n/slice) + 1
    
    return answer

 

https://school.programmers.co.kr/learn/courses/30/lessons/120816

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

728x90
반응형
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120862

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

itertools combination에 대해서 다시한번 확인해보는 문제였다. 의외로 정답율 높은 것 치고는, +4점이나 주었다.

 

 

내가 맞힌 정답::

from itertools import combinations

def solution(numbers):
    answer = 0
    max = numbers[0] * numbers[1]
    
    combin = list(combinations(numbers,2))
    for arr in combin:
        if arr[0] * arr[1] > max:       
            max = arr[0] * arr[1]
    
    answer = max

    
    return answer
728x90
반응형
728x90
반응형

월간 코드 챌린지 시즌1 > 3진법 뒤집기

https://school.programmers.co.kr/learn/courses/30/lessons/68935

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


처음에 틀린 이유 ::

사실 아직도 잘 모르겠다

 

다음에 조심해야할 점 ::

여러 케이스 가운데 꼭 한 두개씩 예외 케이스를 생각하지 못해서 정답으로 인정받지 못하는 경우들이 있다. 항상 예외 케이스를 잘 생각해두자.

 

정답 코드

def solution(n):
    answer = 0
    temp = ''
    
    while n > 0:
        n,r = divmod(n,3)
        temp += str(r)
    
    answer = int(temp, 3)
    return answer
    
    '''
    if n > 0:
        while n > 3:
            temp += str(int(n%3))
            n = n // 3
        temp += str(n)

    for j in range(len(temp)):    
        answer += int(temp[(-1) * (j+1)]) * pow(3, j)
    '''
    
    '''
    if n < 3:
        answer += str(n)
    elif n >= 3:
        while n > 3:
            temp += str(int(n%3))
            n = n // 3
        temp += str(n)

    for j in range(len(temp)):    
        answer += int(temp[(-1) * (j+1)]) * pow(3, j)
    '''

    
    '''
    answer = 0
    tempAnswer = ''
    i = 0
    print(n)
    while (n>=1):
        tempAnswer += str(n%3)
        print(n)
        n = n - n%3
        n = n/3
        
    print(int(tempAnswer)
    answer = int(tempAnswer, 3)
          '''
    #return answer
          
'''
def solution(n):
    answer = ''
    
    while(n >= 1):
        rest = n % 3
        n = n // 3
        answer += str(rest)
    
    return int(answer, 3)
'''

 

잘못 작성한 답 (1)

def solution(n):
    answer = 0
    temp = ''
    
    if n < 3:
        temp += str(n)
    elif n >= 3:
        while n > 3:
            temp += str(int(n%3))
            n = n // 3
        temp += str(n)

    for j in range(len(temp)):    
        answer += int(temp[(-1) * (j+1)]) * pow(3, j)

    return answer
728x90
반응형
728x90
반응형

다음에 조심해야할 점 ::

1. 문제를 잘 읽고 문제를 풀자

2. or 연산자와 and 연산자 헷갈리지 않기.

 

def solution(s):
    answer = True
    
    
    for _ in s:
        if _.isdigit() == False:
            answer = False
            
    if len(s)!=4 and len(s)!=6:
            answer = False
            
    print(len(s)) 
        
    return answer
728x90
반응형
728x90
반응형

무려 7점이나 받은 문제다. 현재 정답률 76%

 

풀이 과정 ::

 

우선 소수 인지를 판단할 수 있는 함수를 하나 정의해준다. 그리고 for문을 통해서 인수 인지를 찾아줌과 동시에 소수인지를 판별하여, answer 라는 리스트에 답을 하나씩 추가해준다.

 

def isprime(n):
    count = 0
    for i in range(1,n+1):
        if n%i == 0:
            count += 1
    if count == 2:
        return True
    
def solution(n):
    answer = []
    
    for i in range(1, n+1):
        if n%i==0 and isprime(i) == True:
            answer.append(i)
    
    return answer
728x90
반응형
728x90
반응형

다음에 조심해야할 점 ::

 

항상 while 문을 쓰는 조건을 고르는 것은 헷갈린다. while 문의 조건을 고를 때 신중하게, 그리고 명확하게 하자.

 

def solution(num):
    answer = 0
    
    while num > 1:
        if num%2 == 0:
            num /= 2
        else :
            num = num*3 + 1
        
        answer += 1
    
    if answer >= 500:
        answer = -1
    
    return answer

 

728x90
반응형

+ Recent posts