백준 477

[Python] 백준 풀기 1018 - 체스판 다시 칠하기

파이썬 백준 1018번 실버4 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 보기 분류: 브루트포스 알고리즘 문제 풀기 규칙 모양이 정제되지 않은 2차원 리스트를 저장하고 체스판으로 형성 가능한 8 by 8 에 대해 모든 경우를 따져보고 W 또는 B 으로 변경해야 할 최솟값을 찾는다. 8 x 8 로 자를 수 있는 위치의 기준은 2차원 배열의 왼쪽 위의 index 를 기준으로 하여 그 경우를 area_N 과 area_M 으로 모두 ..

공부하기/백준 2022.11.14

[Python] 백준 풀기 1012 - 유기농 배추

파이썬 백준 1012번 실버2 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 보기 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 문제 풀기 이 문제를 DFS 로 풀기 위해서 sys.setrecursionlimit(10000) 모듈을 추가해야 한다. 파이썬 기본 재귀 한도는 1000 이기에 재귀 깊이가 1000을 넘어가게 되는 경우 런타임 오류가 발생한다. 주어진 배추의 위치를 matrix 2차원 리스트에 저장한다. 이때 문제에..

공부하기/백준 2022.11.13

[Python] 백준 풀기 2606 - 바이러스

파이썬 백준 2606번 실버3 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 문제 보기 분류: 그래프 이론, DFS 문제 풀기 작동방식은 이해를 하였으나 아직 코드 형태가 친근하지 않은 DFS 로 접근해보는 문제이다. 컴퓨터의 개수와 연결된 개수를 입력 받고 연결된 두 노드간의 정보를 저장하기 위한 2차원 매트릭스를 작성한다. 그리고 컴퓨터의 개수보다 1개 더 많게 0으로 채워진 visited_dfs 를 만든다. (index 번호와 컴퓨터의 번호를..

공부하기/백준 2022.11.12

[Python] 백준 풀기 1002 - 터렛

파이썬 백준 1002번 실버3 https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 문제 보기 분류: 수학, 기하학 문제 풀기 어떤 두 개의 원이 2차원 평면 위에 존재할 수 있는 방법에 대해 묻는 문제이다. 문제에서 주어진 x1, y1, r1, x2, y2, r2 는 원의 중심 좌표와 반지름으로 생각하면 1. 두 원의 중심과 반지름이 완벽히 같을때 무한의 교점을 갖는다. if x1 == x2 and y1 == y2 and r1 == r2: print(-1) 2. 두 원의 중심 거리의 크기가 두 반지름..

공부하기/백준 2022.11.11

[Python] 백준 풀기 1152 - 단어의 개수

파이썬 백준 1152번 브론즈2 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 빈공간으로 분류된 단어들로 이루어진 문장에서 단어의 개수를 찾는다. 전체 문장을 입력 받고 spilt() 을 통해 빈공간으로 각각 나누어 word_ls 에 저장한다. 저장된 리스트의 길이를 구해 단어의 개수를 출력한다. 코드 보기 import sys inputdata = sys.stdin.readline word_ls..

공부하기/백준 2022.11.10

[Python] 백준 풀기 1157 - 단어 공부

파이썬 백준 1157번 브론즈1 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제 보기 분류: 구현, 문자열 문제 풀기 주어지는 단어의 길이는 1,000,000 이기 때문에 for loop 을 전체 돌리다가 혹시 시간 초과 걸릴까 싶어 최대한 파이썬 내장 함수를 이용하였다. 주어진 입력 문자를 하나하나 정리해가며 결과 출력을 시행하였다. 그 순서는 > 모두 대문자 변환 > 각각 문자 리스트 변환 저장 > set() 함수를 이용하여 중복 제거 및 존재 알파벳만 저장 > 존재 ..

공부하기/백준 2022.11.09

[Python] 백준 풀기 1406 - 에디터

파이썬 백준 1406번 실버2 https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 문제 보기 분류: 자료 구조, 스택, 연결 리스트 문제 풀기 커서의 위치를 리스트 분할 위치로 정하고 각 명령어가 들어올 때마다 왼쪽 오른쪽으로 잘라서 저장하였다. list 보다 시간 복잡도에서 유리한 deque 를 사용하여 매번 주어진 명령에 대해 문자 위치를 변경하였다. (물론 list 를 사용하여 append, pop 으로 작성할 수도 있지만 deque 를 사용하..

공부하기/백준 2022.11.08

[Python] 백준 풀기 9095 - 1, 2, 3 더하기

파이썬 백준 9095번 실버3 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 보기 분류: 다이나믹 프로그래밍 문제 풀기 나열되는 숫자들로 규칙성을 알아본다. 1 은 자기 자신 1 만 가능. 2 는 이전 1 에 1 더한것 그리고 자기 자신 2 가능. 3 은 어전전 1 에 2 를 더한것과 1+1 더한것 그리고 이전 2 에 1 을 더한것 그리고 자기 자신 3 가능. 4 부터 규칙성이 뚜렷해 진다. 합으로 만들수 있도록 주어진 숫자는 1, 2, 3 세 개 이기 때문에 다음 차례 n 에서는 이전에 계산되었던 합들을 1, 2, 3 의 경우에 맞춰..

공부하기/백준 2022.11.07

[JavaScript] 백준 풀기 2438 - 별 찍기 - 1

자바스크립트 node.js 백준 2438번 브론즈5 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 문제 보기 분류: 구현 문제 풀기 입출력을 위해 fs 모듈을 불러온다 let fs = require('fs'); 백준에 저장된 input 데이터를 불러온다. readFileSync('/dev/stdin') let star 변수를 선언하여 inputdata 숫자만큼 for loop 을 돌리면서 별 "*" 를 추가하고, 프린트한다. let star = ""; for (let i = 0; i < inputdata; i++) { star += "*"; con..

공부하기/백준 2022.11.06

[Python] 백준 풀기 1874 - 스택 수열

파이썬 백준 1874번 실버2 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 보기 분류: 자료 구조, 스택 문제 풀기 문제를 풀기에 앞서 무슨 소리를 하는지 이해하는데 시간이 걸렸다. 결국은 검색을 통해 문제가 이야기하고자 하는 것의 방향성을 잡을 수 있었는데 그분들도 문제를 이해하는데 어려움이 있었다고 한다;;; 여하튼 문제에서 말하고자 하는 것은 sta..

공부하기/백준 2022.11.05