본문 바로가기

코딩테스트55

[Python][LeetCode] letter Combinations of a phone number(전화번호 문자 조합) https://leetcode.com/problems/letter-combinations-of-a-phone-number/ 문제 설명: 2에서 9까지 숫자가 주어졌을 때 전화번호로 조합 가능한 모든 문자를 출력하는 문제 이 문제는 전체를 탐색해서 푸는 조합 문제이다. dic = { "2": "abc", "3": "def", "4": "ghi", "5": "jkl", "6": "mno", "7": "pqrs", "8": "tuv", "9": "wxyz", "0": "+" } 자판기에 다음과 같이 있다고 했을때 '23' 을 입력받으면 'ad' , 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'cd', 'cf' 3*3 = 9개 출력을 하면 된다. 풀이 path = '' 를 정의하고 path.. 2024. 1. 17.
[Python] 백준 15650번. N과 M(2) https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 설명 예제2 출력 결과를 보면 조합이라는 것을 바로 알 수 있다. 1 2 1 3 1 4 2 3 2 4 3 4 풀이설계 파이썬 itertools모듈의 combinations 를 사용하면 금방 풀 수 있다. import sys from itertools import combinations input = sys.stdin.readline n, m = map(int, input().split()).. 2023. 12. 26.
[Python] 백준 12015번. 가장 긴 증가하는 부분 수열2 https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net 문제 설명: 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 풀이설계 리스트에서 val을 하나씩 꺼내온다. dp[-1]는 보다 val이 크다면 뒤에 바로 추가해준다. 그렇지 않다면 이.. 2023. 12. 19.
[Python] 백준 2108번. 통계학 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 문제설명 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 풀이설계 산술형은 sum / 반올림은 round 중앙값은 배열의 중앙값 // 2 최빈값 배열의 길이가 1 이하인 경우 0번째 값 출력 배열의 길이가 1 초과인 경우 Counter .. 2023. 12. 19.