Koala - 9기/기초 알고리즘 스터디

문제 코드 풀이 도미노 아래와 윗면이 같은 숫자는 (0+1+2+...+n)*2 도미노 아래와 윗면이 다른 숫자는 위에 있는 사진과 같은 규칙을 가짐 따라서 숫자의 규칙성에 따라 반복문을 작성해줌
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 알고리즘 요구 조건이 적록색약이 보는 사람과 아닌 사람이 보는 구역의 수다. 여기서 말하는 구역의 수란 같은 색으로 이루어진 부분이다. 따라서 상하좌우로 인접한 글자들이 같은 색이어야 같은 구역이고, 다른 색이면 다른 구역이다. bfs로 방문을 하지 않은 곳을 방문해주면서, 그래프의 상하좌우를 탐색했을 때 이미 방문한 곳이라면 방문 표시를 해준다. 방문 표시가 된 곳부터 다시 탐색을 하면서..
1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 문제코드
문제 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net Algorithm 2차원 배열 array를 입력받을 때 array의 각 위치를 지나쳤는지에 대한 배열 V를 함께 생성한다. V의 모든 원소는 False로 초기화한다. 같은 방법으로 v를 생성하는데 v는 색약이 아닌 사람, V는 색약인 사람에 대한 배열이다. 모든 과정은 색약인 사람은 "R"과 "G"인 부분을 "A"로 치환하여 진행한다. array의 행과 열 (i, j)에 대해 arra..
https://www.acmicpc.net/problem/10865 10865번: 친구 친구 첫째 줄에 도현이네 반 학생의 수 N(1 ≤ N ≤ 100,000), M(0 ≤ M ≤ 1,000,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계를 나타내는 A B가 한 줄에 하나씩 주어진다. A B가 입력으로 주어진 경우 www.acmicpc.net 문제 소스코드 문제풀이 학생 수+1만큼 0으로 구성된 리스트를 만들어 입력되는 학생 번호에 해당하는 index 에 1을 추가하여 리스트를 만들어서 해결했다. 학생 수n크기의 리스트를 만들어서 했을 때는 시간초과가 나왔고, +1을 해주었더니 해결되었다.
3184번: 양 (acmicpc.net) 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net 문제 미키의 뒷마당에는 특정 수의 양이 있다. 그가 푹 잠든 사이에 배고픈 늑대는 마당에 들어와 양을 공격했다. 마당은 행과 열로 이루어진 직사각형 모양이다. 글자 '.' (점)은 빈 필드를 의미하며, 글자 '#'는 울타리를, 'o'는 양, 'v'는 늑대를 의미한다. 한 칸에서 수평, 수직만으로 이동하며 울타리를 지나지 않고 다른 칸으로 이동할 수 있다면, 두 칸은 같은 영역 안에 속해 있다고 한다. 마당에서..
문제 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 요약 중요도가 높은 순서대로 문서를 인쇄하면서, 특정 문서가 몇 번째로 인쇄됐는 지 출력하는 문제이다. 코드 #include #include #include #include using namespace std; int main () { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int T; cin >> T; int N, M, save, index = 0, order = 1; bool bigge..
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 풀이 1 문제 코드 문제 풀이 DFS 로 풀이 1) 적록색약이 아닐 때, R,G,B 각각의 함수를 설정. 2) 적록색약일 때, R,G 값을 함수 S로 묶어서 풀이, B는 그대로 풀이함. 풀이 2 문제 코드 문제 풀이 BFS 로 풀이, 코드가 너무 길고 지저분하다는 생각이 들어서 최대한 간단하게 풀이 해 보고자 함. 코드의 길이를 줄이기 위해 하나의 함수로만 문제를 해결하려고 하였음. 1) ..
https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 코드 문제 풀이 재귀함수를 활용, 중복은 불가하지만 같은 수가 2개 이상 들어있다면 [n,n] 과 같은 출력을 해야 하기 때문에 a 에서 중복제거를 할 수 없음. 따라서 1개인 숫자의 중복을 허용하지 않기 위해 t 를 두어 a[i] 가 현재 A = [] 안에 포함되어 있는지를 확인하는 작업을 추가함. 리스트 내부의 중복을 처리한 후 출력.
https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 문제 풀이 막대기를 리스트에 입력받고, 앞에서 뒤로 리스트를 탐색하면서 점점 더 높은 막대만 카운트하면 된다. 반복문으로 풀 수도 있을 것 같은데, 재귀 함수에 익숙해지고자 간단하지만 재귀 로직으로 구현해봤다. 구현 로직 첫 번째 시도 import sys input = sys.stdin.readline def go(arr, idx, cmp): global ans if idx >= len(arr): pr..
문제 https://www.acmicpc.net/problem/16435 16435번: 스네이크버드 첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기 길이 정수 L (1 ≤ L ≤ 10,000) 이 주어집니다. 두 번째 줄에는 정수 h1, h2, ..., hN (1 ≤ hi ≤ 10,000) 이 주어집니다. www.acmicpc.net Algorithm 스네이크버드의 길이보다 작거나 낮은 곳에 있는 과일이 있다면 그 과일을 fruits에 추가하고 스네이크버드의 길이를 1만큼 늘린다. 이 과정을 모든 과일의 높이가 스네이크버드의 길이보다 높은 곳에 위치할 때까지 반복한다. Code import sys input = sys.stdin.readline N, L = map(int..
https://www.acmicpc.net/problem/10865 10865번: 친구 친구 첫째 줄에 도현이네 반 학생의 수 N(1 ≤ N ≤ 100,000), M(0 ≤ M ≤ 1,000,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계를 나타내는 A B가 한 줄에 하나씩 주어진다. A B가 입력으로 주어진 경우 www.acmicpc.net 문제분석 친구 관계가 주어진다. 예를 들어 1번과 2번이 친구면 1 2가 주어진다. 입력으로 자기자신과 친구인 경우(ex 1 1)와 전에 나온 친구관계는 나오지 않는다(ex 1 2이 나온경우 2 1은 입력으로 주어지지 않음). 1번 사람부터 N번 사람까지 친구가 몇명 있는지 출력한다. 문제풀이 처음에는 친구관계를 나타내는 표를 생각해서 2차원 배열을 생각..
KauKoala
'Koala - 9기/기초 알고리즘 스터디' 카테고리의 글 목록