목록전체 글 (188)
alpyrithm_알파이리즘
너비 우선 탐색 7576 토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 문제 풀기 전 공부할 것 : 그래프 이론, 그래프 탐색, 너비 우선 탐색 풀이 1 먼저 box에 토마토 정보를 저장한다. 그리고 익은 토마토를 ripe에 넣어준다. 이중 for문으로 box를 돌면서 값이 1인 익은 토마토를 확인하고 해당 위치를 ripe에 넣는다. dx, dy는 해당 토마토와 인접한 곳(왼쪽, 오른쪽, 앞, 뒤) 네 방향을 확인하기 ..
부트스트랩(BOOTSTRAP)으로 웹페이지 만들기_ 1일차 부트스트랩이란? BootStrap = 반응형 웹디자인을 쉽게 개발할 수 있는 웹 프론트엔드 개발 프레임워크(웹디자인을 쉽게 하기 위해서 CSS의 클래스 선택자에 정의된 스타일시트와 자바스크립트 플러그인의 라이브러리) +) 반응형 웹디자인(디바이스 장치에 따라서 웹페이지를 볼 때 같은 layout이 layout이 서로 다른 형식으로 보이는 것) +) CSS : 웹페이지를 만들 때 기본 정보를 가지고 스타일을 만들 수 있는 것 CSS vs BS 속성을 직접 다 작성해야 함 VS 미리 정의된(이미 다 정의되어 있는) 을 'class'로 적용 핵심 요소? CSS GRID SYSTEM : 반응형을 만드는데 필요한 요소 반응형, 유동형 레이아웃을 지원하는 ..
Brute Force, 구현 1051 숫자 정사각형 www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N*M크기의 직사각형이 있다. 각 칸은 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 또는 www.acmicpc.net 문제 풀기 전 공부할 것 : 구현, 브루트포스 알고리즘 풀이 구체적인 단계 풀이가 필요하신 분은 댓글 남겨주세요. import sys input = sys.stdin.readline n, m = map(int, input().split()) square = [list(map(int, input().rstrip())) for _ in range(n)] s =..
Brute Force 10448 유레카 이론 www.acmicpc.net/problem/10448 10448번: 유레카 이론 프로그램은 표준입력을 사용한다. 테스트케이스의 개수는 입력의 첫 번째 줄에 주어진다. 각 테스트케이스는 한 줄에 자연수 K (3 ≤ K ≤ 1,000)가 하나씩 포함되어있는 T개의 라인으로 구성되어 www.acmicpc.net 문제 풀기 전 공부할 것 : 수학, 브루트포스 알고리즘 풀이 구체적인 단계적 풀이가 필요하신 분은 댓글 부탁드립니다. import sys input = sys.stdin.readline t = int(input()) tri = [i*(i+1)//2 for i in range(1, 45)] for _ in range(t): n = int(input()) m =..
DP 10164 격자상의 경로 www.acmicpc.net/problem/10164 10164번: 격자상의 경로 입력의 첫째 줄에는 격자의 행의 수와 열의 수를 나타내는 두 정수 N과 M(1 ≤ N, M ≤ 15), 그리고 ○로 표시된 칸의 번호를 나타내는 정수 K(K=0 또는 1 < K < N×M)가 차례로 주어지며, 각 값은 공백으 www.acmicpc.net 문제 풀기 전 공부할 것 : 수학, 다이나믹 프로그래밍 풀이 구체적인 단계 풀이가 필요하신 분이 계시다면 댓글 부탁드립니다. n, m, o = map(int, input().split()) dp = [[0 for _ in range(m)] for _ in range(n)] if o == 0: for i in range(n): for j in r..
1013 Contact www.acmicpc.net/problem/1013 1013번: Contact 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤ www.acmicpc.net 문제 풀기 전 공부할 것 : 구현 풀이 구체적인 단계 풀이 내용이 필요하신 분이 계시다면 댓글 남겨주세요. def solve(idx, node , wave): if node == -1: print('NO') return if idx == len(wave) and (node == 5 or node == 6 or node == 7): print('YES') return if idx..
조합 1010 다리 놓기 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 문제 풀기 전 공부할 것 : 수학, 다이내믹 프로그래밍, 조합론 풀이 1 다리를 지을 때 겹칠 수 없기 때문에 규칙을 찾아보면 서쪽에 1개, 동쪽에 n개 있을 때 다리는 n개 지을 수 있다. 서쪽의 사이트 개수와 동쪽의 사이트 개수가 똑같다면 다리는 1개 지을 수 있다. 서쪽의 사이트 개수가 n, 동쪽의 사이트 개수가 m이라면 (서쪽에 n개, 동쪽에 m-1개로 지을 수 있..
DP 11726 2Xn 타일링 www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 문제 풀기 전 공부할 것 : 다이나믹 프로그래밍 풀이 DP를 이용해서 해결할 수 있는 문제이다. Scanner를 이용하여 n값을 입력받는다. 2Xn 타일링의 규칙을 찾는다. 1일 때는 1가지 경우만 가능하다. 2일 때는 2가지 경우만 가능하다. 3일 때를 보면 1일 때에서 가로로 누은 타일 2개를 붙이는 경우와 2일 때 세로 타일 1개를 붙이는 경우가 있다. 따라서 n일 때는 n-2의 경우의 수 + n..