Koala - 11기/코딩테스트 준비 스터디

https://www.acmicpc.net/problem/2057 2057번: 팩토리얼 분해 음 아닌 정수 N이 주어졌을 때, 이 수를 서로 다른 정수 M(M ≥ 1)개의 팩토리얼의 합으로 나타낼 수 있는지 알아내는 프로그램을 작성하시오. 예를 들어 2=0!+1!로 나타낼 수 있지만, 5는 이와 같은 www.acmicpc.net 문제 분석 난이도 실버5 분류 수학, 브루트포스 들어가기 전에 숫자의 크기를 보고 대략적인 감을 잡을 수 있다면 정말 편하다. 문제 문제 풀이 풀이 입력 제한의 최댓값보다 20!이 더 큰 수이다. 즉 0~20 총 21가지에 대해 포함 / 비포함으로 탐색을 하면 된다. 그럴 경우 2^21가지 경우의 수로 200만정도로 충분히 브루트 포스로 풀어볼 수 있다. 소스코드 def bf(n..
문제 https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 풀이 방법 n과 m이 50보다 작거나 같은 자연수이므로 완전 탐색으로 가능하다 생각하여 삼중 for문을 이용하여 풀이했습니다. n x m에서 나올 수 있는 가장 큰 정사각형부터 감소하는 방향으로 for문을 작성하고, 왼쪽 위의 꼭짓점이 될 수 있는 i, j를 이중 for문으로 모두 탐색합니다. 0,0 ([i][j])부터 변의 길이가 s인 정사각형의 꼭짓점을 비교하여 모두 같다면 정사각형의 크..
https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제의 설명이 매우 길어 링크로 대신 첨부합니다. 해결방법: 주어진 입력 값이 적을 때에는 재귀보다 직접 연산을 이용 제한사항 expression은 길이가 3 이상 100 이하인 문자열입니다. expression은 공백문자, 괄호문자 없이 오로지 숫자와 3가지의 연산자(+, *) 만으로 이루어진 올바른 중위표기법(연산의 두 대상 사이에 연산기호를 사용하는 방식)으로 표현된 연산식입니다. 잘못된 연..
문제 13423번: Three Dots (acmicpc.net) 풀이방법 처음엔 vector에 넣어서 정렬 후 풀었는데 시간 초과가 나왔다. 그래서 입력된 점들을 자동으로 오름차순으로 정렬하는 Set에 넣었다. 간격이 같은 세 점을 각각 A, B, C라고 한다면 A와 B를 지정하고 B + B - A인 C가 Set에 있다면 +1. 지금보니까 왜 변수 명을 i, j로 안하고 iter_i, iter_j로 했지?? 코드가 더러워졌다 코드 #include #include using namespace std; int T; // test case int N; // Number of Dots int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(..
Problem Solution int형인 num을 1씩 늘리고 string 형태로 변환하여 "666" 이 있다면 count를 하나씩 늘려 가면서 n번째 영화의 제목에 들어간 수를 출력하도록 코드를 작성한다. Answer #include #include using namespace std; string getNumber(int n) { int count = 0; int num = 0; while (count > n; string ans = getNumber(n); cout
https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 1. 문제 풀이 집합 S에 존재하는 로또 번호 중 6개의 번호를 선택하여 나열하는 모든 순열의 수를 완전 탐색을 이용하여 구하였다. 집합 S에서 6개의 원소를 선택하여 나열하기 위해, 집합 S의 개수만큼 0으로 채워진 벡터 V를 만들고, 0부터 5번째 인덱스까지 1을 채운다. 그 후, algorithm 헤더 파일의 prev_permutation 함수를 사용하여 벡터 V의 모든 순열의 수..
문제 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net Algorithm N개의 수와 그 사이사이에 들어갈 N-1개의 연산자가 주어지면 연산자를 적절히 배치하여 계산한 결과의 최대, 최소를 찾는 문제이다. 연산의 순서는 단순하게 연산자 우선순위를 무시하고 앞에서 부터 진행하면 되고, 음수를 나눌때는 양수로 바꾼 뒤 몫을 취하고, 그 몫을 음수로 바꾸면 된다고 문제에서 제시했다. N의 범위..
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net # 문제 설명 - N*M의 체스판을 입력 받고, 그 중에서 8*8 크기의 체스판으로 자른 후, 변을 공유하는 사각형들이 모두 서로 다른 색이 되도록 칠하고자 한다. 따라서 완성된 체스판은 두 가지의 경우가 있는데, 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우다. - 체스판을 완성하기 위해 다시 칠해야 하는 체스판의 칸의 개수의 최솟값을 출력한다. - 첫째 줄에 N과 M이 주..
KauKoala
'Koala - 11기/코딩테스트 준비 스터디' 카테고리의 글 목록 (9 Page)