[TIL] 23.01.20

문종현·2023년 1월 20일
0

TIL

목록 보기
67/119
post-custom-banner

👉 오늘 한 일

  • 프로그래머스 문제풀이(level 0)

프로그래머스 문제풀이

1. 피자 나눠 먹기 (1)

import math
def solution(n):
    return math.ceil(n / 7)
  • 다른 사람 풀이(모듈 사용 x)
def solution(n):
    return (n - 1) // 7 + 1

2. 짝수 홀수 개수

def solution(num_list):
    even = 0
    odd = 0
    for num in num_list:
        if num % 2 == 0:
            even += 1
        else:
            odd += 1 
    return [even, odd]
  • 다른 사람 풀이
def solution(num_list):
    answer = [0,0]
    for n in num_list:
        answer[n%2]+=1
    return answer

3. 문자 반복 출력하기

def solution(my_string, n):
    return "".join([a*n for a in my_string])

4. 최댓값 만들기(1)

def solution(numbers):
    return sorted(numbers, reverse=True)[0] * sorted(numbers, reverse=True)[1]

5. 삼각형의 완성조건 (1)

def solution(sides):
    sides = sorted(sides)
    return 1 if sides[0] + sides[1] > sides[2] else 2

6. 배열 자르기

def solution(numbers, num1, num2):
    return numbers[num1:num2+1]

7. 짝수는 싫어요

def solution(n):
    return [i for i in range(1, n+1, 2)]

8. 배열 두 배 만들기

def solution(numbers):
    return [n * 2 for n in numbers]

9. 편지

def solution(message):
    return len(message) * 2

💡 여기서부터는 정답률 70% 이하 문제

10. 캐릭터의 좌표

def solution(keyinput, board):
    answer = [0,0]
    for k in keyinput:
        if k == "up":
            if answer[1] < (board[1]-1)/2:
                answer[1] += 1
            else:
                continue
        elif k == "down":
            if answer[1] > -(board[1]-1)/2:
                answer[1] -= 1
            else:
                continue
        elif k == "right":
            if answer[0] < (board[0]-1)/2:
                answer[0] += 1
            else:
                continue
        elif k == "left":
            if answer[0] > -(board[0]-1)/2:
                answer[0] -= 1
            else:
                continue
    return answer

11. 로그인 성공?

def solution(id_pw, db):
    idx = [0,0,0]
    for info in db:
        if id_pw == info:
            idx[0] += 1
        elif (id_pw[0] == info[0]) & (id_pw[1] != info[1]):
            idx[1] += 1
        elif id_pw[0] != info[0]:
            idx[2] += 1
    
    if idx[0] >= 1:
        return "login"
    elif idx[1] >= 1:
        return "wrong pw"
    else:
        return "fail"

12. 직사각형 넓이 구하기

def solution(dots):
    dots = sorted(dots)[1:3]
    width = abs(dots[1][0] - dots[0][0])
    height = abs(dots[1][1] - dots[0][1])
    return width * height

13. 치킨 쿠폰

def solution(chicken):
    service_chicken = chicken // 10
    coupon_left = service_chicken + chicken % 10

    while coupon_left > 9:
        coupon_left -= 10
        service_chicken += 1
        coupon_left += 1
        
    return service_chicken
  • 다른 사람 풀이
def solution(chicken):
    return int(chicken*0.11111111111)

사실 아직 이 로직이 이해가 잘 되지는 않는다...! 조금 더 봐야할듯 싶다.

profile
자라나라 새싹새싹🌱
post-custom-banner

0개의 댓글