본문 바로가기

분류 전체보기

(256)
알림 당분간 포트폴리오 작성으로 좀 바쁠 예정. 알고리즘은 될 수 있는 한 1일 1문제 이상을 고수하겠음
프로그래머스)덧칠하기 https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n, m, section): answer = 1 number = section[0] + m - 1 for i in range(1,len(section)): if section[i]
백준)양 https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net from collections import deque col,row = map(int,input().split()) arr = [] for i in range(col): a = str(input()) a = list(a) arr.append(a) visit = [[False]*row for _ in range(col)] dx = [1,-1,0,0] dy = [0,0,1,-1] w,s ..
백준)1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net a = int(input()) dp = [0] * (a + 1) for i in range(2,a+1): dp[i] = dp[i-1] + 1 if i % 2 ==0: dp[i] = min(dp[i], dp[i // 2] + 1) if i % 3 == 0: dp[i] = min(dp[i], dp[i // 3] + 1) print(dp[a]) DP문제이다. 처음엔 dp인 것을 알았으나 도무지 풀 방법이 떠오르지 않아 그리디로 풀어보려했다. 그러나 여느 dp문제가 그렇듯이 이 문제 또한 그리디로 풀 수가 없다. 한 ..
백준)정수 삼각형 https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net a = int(input()) arr = [] for i in range(a): arr.append(list(map(int,input().split()))) for i in range(1,len(arr)): for j in range(len(arr[i])): left = 0 right = 0 if j - 1 >= 0: left = arr[i-1][j-1] + arr[i][j] if len(arr[i -1]) > j: right = arr[i-1][j] + arr[i][..
백준)모둔 순열 https://www.acmicpc.net/problem/10974 from itertools import permutations a = int(input()) arr = [i for i in range(1,a+1)] for i in permutations(arr,len(arr)): for j in i: print(j,end=' ') print()
백준)차이를 최대로 https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net from itertools import permutations n = int(input()) arr = list(map(int,input().split())) count = 0 z = [] answer = 0 for array in permutations(arr,len(arr)): count = 0 for i in range(len(arr) - 1): count += abs(array[i] - array[i+1..
백준)날짜 계산 (브루트포스) https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net arr = list(map(int,input().split())) count = 1 while max(arr) > 1: arr[0] -= 1 arr[1] -= 1 arr[2] -= 1 if arr[0] == 0: arr[0] = 15 if arr[1] == 0: arr[1] = 28 if arr[2] == 0: arr[2] = 19 count += 1 print(count) 전형적인 브루트포스 문제이다..