코딩테스트

하루 코테 3개 풀기 - 12일 차

songsua 2024. 12. 20. 23:52

1. 최소직사각형
https://school.programmers.co.kr/learn/courses/30/lessons/86491

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(sizes):
    max_width = 0
    max_height = 0

    # enumerate를 사용하여 각 명함의 가로와 세로를 처리
    for w, h in sizes:
        # 가로와 세로 중 큰 값을 가로로, 작은 값을 세로로 설정
        max_width = max(max_width, max(w, h))
        max_height = max(max_height, min(w, h))

    # 지갑 크기 계산
    return max_width * max_height

2. 숫자 야구
https://www.acmicpc.net/problem/2503

from itertools import permutations

# 가능한 모든 3자리 숫자 생성
nums = list(permutations(range(1, 10), 3))

n = int(input())
for _ in range(n):
    guess, s, b = map(int, input().split())
    guess = list(map(int, str(guess)))  # 정수 guess를 리스트로 변환
    answ = []

    for num in nums:
        strike, ball = 0, 0

        # 스트라이크와 볼 계산
        for i in range(3):
            if num[i] == guess[i]:
                strike += 1
            elif guess[i] in num:
                ball += 1

        # 현재 숫자가 조건을 만족하면 answ에 추가
        if strike == s and ball == b:
            answ.append(num)

    nums = answ  # 조건을 만족하는 숫자들로 업데이트

# 가능한 숫자의 개수 출력
print(len(nums))

문제 이해하는데 너무 오래걸렸다.... 다시 꼭 풀어보자

 

3. 암호 키

https://www.acmicpc.net/problem/1816

Tc = int(input())

for i in range(Tc)  :
    number = int(input()) 
    for i in range(2, 1000001) :
        if number%i == 0 :
            print("No")
        if i == 1000000 :
            print("YES")