728x90

Python/Coding Test 59

[Coding Test] 푸드 파이트 대회

프로그래머스 코딩테스트 1단계 : 푸트 파이트 대회 문제 설명 수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다. 이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 ..

Python/Coding Test 2023.12.27

[Coding Test] 최솟값 만들기

프로그래머스 코딩테스트 2단계 : 최솟값 만들기 문제 설명 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 A에서 첫번째 숫자인 1, B에서 첫번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5) A에서 두번째 숫자인 4, B에서 세번째 숫자인 4를 뽑아 곱하여 더합니다..

Python/Coding Test 2023.12.19

[Coding Test] 1016번 : 제곱 ㄴㄴ 수

백준 코딩테스트 1016번 : 제곱 ㄴㄴ 수 문제 설명 어떤 정수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 그 수를 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수가 몇 개 있는지 출력한다. 문제 풀이 a,b를 정수로 정의하여 받아옴 제곱ㄴㄴ수를 세어줄 count 정의 반복문을 통해 max 수를 범위로 반복 반복문 안의 조건문을 이용해 제곱ㄴㄴ수를 구함 수가 1일 경우는 항상 제곱ㄴㄴ수 이기 때문에 count에 1을 더해줌 math의 sqrt 함수를 이용해 제곱근이 정수이면 제곱수인 것이기 때문에 continue [기초문법] math : sqrt(), pow() 함수 아닐 경우, 제곱ㄴㄴ수 이므로 count..

Python/Coding Test 2023.09.16

[Coding Test] 11723번 : 집합

백준 코딩테스트 11723번 : 집합 문제 설명 비어있는 공집합 S가 주어졌을 때, 아래 연산을 수행하는 프로그램을 작성하시오. add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다. remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다. check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20) toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20) all: S를 {1, 2, ..., 20} 으로 바꾼다. empty: S를 공집합으로 바꾼다. 문제 풀이 시간 단축을 위해 sys로 연산 수를 m으로 받음 비어있는 공집합 s를 set으..

Python/Coding Test 2023.09.08

[Coding Test] 10814번 : 나이순 정렬

백준 코딩테스트 10814번 : 나이순 정렬 문제 설명 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 문제 풀이 input을 통해 온라인 저지 회원 수를 받아옴 user의 나이와 이름을 받음 리스트 생성 n을 범위로 반복문을 실행하여 user 리스트에 공백을 기준으로 나누어 나이와 이름을 입력 받음 user 리스트를 나이를 기준으로 정렬[기초문법] lambda 함수 : map, filter 최종적으로 반복문을 통해 순서대로 유저의 나이와 이름 출력 정답 코드 n = int(input()) user = [] for _ in range(n): user.appe..

Python/Coding Test 2023.09.03

[Coding Test] 1920번 : 수 찾기

백준 코딩테스트 1920번 : 수 찾기 문제 설명 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 문제 풀이 input으로 정수와 리스트를 받음 m 만큼 반복하여 n 리스트에 m 리스트의 i 값이 몇개 있는 count를 활용해 출력 처음 코드 n = int(input()) n_list = list(map(int, input().split())) m = int(input()) m_list = list(map(int, input().split())) for i in range(m): a = n_list.count(m_list[i]) print(a) 시간초과 정답 코드 from sys import stdin n = int(s..

Python/Coding Test 2023.09.01

[Coding Test] 1546번 : 평균

백준 코딩테스트 1546번 : 평균 문제 설명 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 문제 풀이 n으로 과목 수 입력 score_list에 점수를 받아 공백을 기준으로 리스트 생성 m으로 score_list의 최댓값 저장 바뀐 점수를 저장할 새로운 리스트 생성 반복문을 이용해 score_list의 값을 변환하여 new_list에 ..

Python/Coding Test 2023.08.27

[Coding Test] 10869번 : 사칙연산

백준 코딩테스트 10869번 : 사칙연산 문제 설명 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 문제 풀이 input으로 수를 받아오고, split로 공백을 기준으로 수를 나눔 A와 B를 정수로 받아, 조건 값을 출력 정답 코드 A, B = input().split() A = int(A) B = int(B) print(A+B) print(A-B) print(A*B) print(A//B) print(A%B)* 이 문제는 백준 코딩테스트 문제입니다.

Python/Coding Test 2023.08.27

[Coding Test] 9095번 : 1,2,3 더하기

백준 코딩테스트 9095번 : 1,2,3 더하기 문제 설명 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 문제 풀이 1, 2, 3의 경우 값이 정해져 있기 때문에 값을 먼저 입력 반복문을 통해 4부터 10까지 반복 반복문 안의 값은 dp[i]에 앞에 있는 3개를 더하는 형식으로 반복 n값을 input으로 입력받고 n으로 반복문을 돌려 값을 출력 정답 코드 dp = [0] * 11 dp[1] = 1 dp[2] = 2 dp[3] = 4 for i in range(4..

Python/Coding Test 2023.08.27

[Coding Test] 정수 삼각형

프로그래머스 코딩테스트 3단계 : 정수 삼각형 문제 설명 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 문제 풀이 이중 반복문을 통해 삼각형의 숫자 값들을 누적으로 더했을 때 더 큰 값으로 변경 ([[7], [10, 15], [18, 16, 15] ... ]) 첫 번째 반복문의 범위가 1부터인 이유 : triangle[0][0] 은 값의 ..

Python/Coding Test 2023.08.18
반응형