👉🏻 2303번: 숫자 게임import sys; input=sys.stdin.readlinefrom itertools import combinationsn = int(input())max_scores = []for person in range(1, n+1): cards = list(map(int, input().split())) max_score = 0 for combo in combinations(cards, 3): score = sum(combo) % 10 max_score = max(max_score, score) max_scores.append((max_score, person))winner = max(max_scores, key=l..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdef solution(board): answer = 0 rows = len(board) cols = len(board[0]) dp = [[0] * cols for _ in range(rows)] for i in range(rows): dp[i][0] = board[i][0] answer = max(answer, dp[i][0]) for j in range(cols): dp[0][j] = board[0][j] ..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krfrom itertools import combinationsfrom collections import Counterdef solution(orders, course): answer = [] for i in course: counters = [] for order in orders: for ch in combinations(order, i): counters.append(''.join(sorted(ch))) cou..
👉🏻 2422번: 한윤정이 이탈리아에 가서 아이스크림을 사먹는데N, M = map(int, input().split())bad_pairs = [set() for _ in range(N+1)] for _ in range(M): a, b = map(int, input().split()) bad_pairs[a].add(b) bad_pairs[b].add(a) count = 0for i in range(1, N-1): for j in range(i+1, N): if j in bad_pairs[i]: continue for k in range(j+1, N+1): if k not in bad_pairs[i] and ..
👉🏻 4096번: 팰린드로미터import sys; input=sys.stdin.readlinewhile True: n = input().rstrip() if n == '0': break min_distance = 0 while n != n[::-1]: min_distance += 1 n = str(int(n) + 1).zfill(len(n)) print(min_distance)브루트포스를 이용하여 각 숫자가 팰린드롬에 해당하는지를 검사하는 문제였습니다.기존 자릿수를 보존하기 위해서 zfill()을 사용해 앞쪽에 필요한 만큼 '0'을 채워주었습니다.
저번 글에 이어서 브루트포스 관련 추가적인 문제와 최적화에 관한 내용을 다루어 보겠습니다! 문제: 게임판 덮기H X W 크기의 게임판에서, 모든 흰 칸을 L자 모양의 블록으로 덮는 방법을 찾는 문제입니다. 블록은 회전 가능하지만, 겹치거나 검은 칸을 덮거나 게임판 밖으로 나갈 수는 없습니다.프로그램은 2초 안에 실행되어야 하며, 64MB 이하의 메모리를 사용해야 합니다! 입력은 테스트 케이스 수 $C$($C$≤$30$), 또한 각 테스트 케이스마다 두 정수 $H$, $W$($1$≤$H$, $W$≤$20$)와 $H\times T$ 크기의 게임판(흰 칸의 수는 최대 50)으로 구성됩니다.게임판을 구성할 때 검은 칸은 '#', 흰 칸은 '.'으로 표시됩니다.33 7#.....##.....###...##3 7#..
이번 글부터는 여러 알고리즘 패러다임을 다뤄보며 알고리즘 문제에서 어떤 식으로 이 패러다임을 사용하는지 알아보도록 하겠습니다.브루트포스 알고리즘에 대한 접근법이나 더 많은 문제를 원하시면 하단 포스팅을 보셔도 도움이 될 것 같습니다! 👍🏻 꼭 알아야하는 코딩 테스트 유형: 7) #Bruteforcing이번에는 코딩 테스트에서 중요한 유형인 'Brute Forcing(브루트포스)'에 대해 알아보겠습니다. 브루트포스는 가능한 모든 경우의 수를 탐색하여 정답을 찾는 방법입니다. 즉, 모든 가능성을 일일이injoycode.tistory.com 개요프로그래밍 대회에서 참가자들은 종종 복잡하고도 우아한 해결책을 찾으려 하지만, 실제로는 더 간단하고 명확한 방법이 존재할 때가 많습니다.이러한 상황에서 '완전 탐색..
이번에는 코딩 테스트에서 중요한 유형인 'Brute Forcing(브루트포스)'에 대해 알아보겠습니다. 브루트포스는 가능한 모든 경우의 수를 탐색하여 정답을 찾는 방법입니다. 즉, 모든 가능성을 일일이 시도해보는 방식으로 문제를 해결합니다. 브루트포스 알고리즘의 개념 브루트포스 알고리즘은 가능한 모든 경우의 수를 직접 확인하며 최적의 해를 찾아내는 방식입니다. 이는 다른 방식으로 최적해를 찾기 어려운 경우에 효과적인 방법일 수 있으나, 경우의 수가 많은 경우에는 시간이 매우 오래 걸릴 수 있습니다. 브루트포스 문제 접근법 문제 이해와 제약 사항 파악: 주어진 문제를 정확하게 이해하고, 입력 크기와 제약 사항을 파악해야 합니다. 가능한 모든 조합 생성: 주어진 입력 범위 내에서 가능한 모든 조합을 생성합니..