_won_
wonprogrammer
_won_
전체 방문자
오늘
어제
  • 분류 전체보기
    • woncoding
      • TIL
      • WIL
    • source Code
      • Python
      • Programmers
      • BAEKJOON

블로그 메뉴

  • 방명록

티스토리

Github · Wonprogrammer
hELLO · Designed By 정상우.
_won_

wonprogrammer

source Code/Programmers

Programmers | week2 문제 풀이

2023. 2. 9. 14:15

Programmers 문제 풀이

1. 두 정수 사이의 합

def solution(a, b):
    answer = 0
    if a < b:
        for num in range(a, b+1):
            answer += num
    elif a == b:
        answer += a
    else:
        for num in range(b, a+1):
            answer += num

    return answer

 

2. 문자열을 정수로 바꾸기

def solution(s):
    s = int(s)
    return s

 

3. 정수 내림차순으로 배치하기

def solution(n):
    n = str(n)
    n = sorted(n, reverse=True) # reverse와 reversed의 차이?

    answer = "".join(n)
    answer = int(answer)

    return answer

print(solution(1652))

 

4. 나머지가 1이 되는 수 찾기 - 월간코드챌린지시즌3

def solution(n):
    answer = 0
    x = 1
    while x < n:
        if n % x == 1:
            answer = x
            break
        else:
            x += 1

    return answer

 

5. 음양 더하기 - 월간코드챌린지시즌2

def solution(absolutes, signs):
    answer = 0
    for i in range(0, len(absolutes)):
        if signs[i] == True:
            answer += absolutes[i]
        else:
            answer -= absolutes[i]

    return answer

 

6. 예산 - Summer/Winter Coding(~2018)

def solution(d, budget):
    count = 0
    d.sort()
    for i in range(0, len(d)):
        if budget >= d[i]:
            budget -= d[i]
            count += 1

    return count

'''
뽀인트 :  if budget >= d[i]
'''

 

 

7. K번째 수 - 정렬

def solution(array, commands) :
    answer = []

    for i in range (len(commands)) :
        new_array = array[commands[i][0]-1:commands[i][1]]
        new_array.sort()

        answer.append(new_array[commands[i][2]-1])

    return answer

 

8. 같은 숫자는 싫어 - 스택/큐

def solution(arr):
    stack = [10]
    for i in range(0, len(arr)):
        if arr[i] != stack[-1]:
            stack.append(arr[i])
            
    stack.pop(0)

    return stack

 

9. 실패율 - 2019 KAKAO BLIND RECRUITMENT

def solution(N, stages):
    fail = {}   # 아래의 fail[key] = value 로 저장되고 있음
    all_user = len(stages) # 전체 이용자 수

    # 스테이지 레벨 만큼 반복 : i는 stage 레벨을 말함
    for i in range(1, N+1):
        this_user = stages.count(i) # 해당 스테이지 user수

        if this_user == 0:  # 해당 스테이지 user가 없으면 실패율 = 0 
            fail[i] = 0
        else:
            fail[i]= this_user / all_user  # 해당 스테이지의 실패율
            all_user -= this_user   # user가 없으면 전체 사용자에서 빼줄 필요 없으므로 else 이후 부분에서만 this_user수를 빼줌

    # 딕셔너리 정렬 : value 기준으로 정렬할 때 key 값만 얻는 목적
    s_fail= sorted(fail, key=fail.get, reverse=True)    # 이부분은 https://gomgomkim.tistory.com/26  참고함!

    return s_fail

 

10. 소수 만들기 - Summer/Winter Coding(~2018)

from itertools import combinations

def solution(nums):
    count = 0
    random_nums = list(combinations(nums, 3))
    random_nums_cnt = len(random_nums)

    def is_prime_number(num):
        if num==0 or num==1:
            return False
        else:
            for n in range(2, (num//2)+1):
                if num % n == 0:
                    return False        
            return True
            
    for i in range(0, random_nums_cnt):
        num = sum(random_nums[i])

        if is_prime_number(num) == True:
            count += 1

    return count
'''
소수 : N이 N의 제곱근보다 크지 않은 어떤 소수로도 나눠지지 않는다. 수가 수를 나누면 몫이 발생하게 되는데 몫과 나누는 수, 둘 중 하나는 반드시 N의 제곱근 이하이기 때문입니다.

->  i * i ≤ n 일 때까지만 비교하면 됨

+ Tip!
#1. 소수 만들기 문항에서 'cominations'를 이용하면 훨씬 우아하게 풀 수 있습니다.
'from itertools import combinations' 로 import해서 사용하시면 되구요,
많이 사용되니 용례를 학습해보시면 좋을 것 같습니다.
(+ https://ourcstory.tistory.com/414 )

#2. 어떤 값이 소수인지 여부를 판단하는 간단한 함수
def is_prime_number(num):
    if num==0 or num==1:
        return False
    else:
        for n in range(2, (num//2)+1):
            if num % n == 0:
                return False        
        return True
'''
저작자표시 비영리 변경금지 (새창열림)

'source Code > Programmers' 카테고리의 다른 글

Programmers | week3 문제 풀이  (0) 2023.02.09
Programmers | week1 문제 풀이  (0) 2023.02.09
    'source Code/Programmers' 카테고리의 다른 글
    • Programmers | week3 문제 풀이
    • Programmers | week1 문제 풀이
    _won_
    _won_
    Coding Practice blog

    티스토리툴바