no image
[알고리즘 일기 - 파이썬] 232. 색종이 만들기
2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net Baekjoon 2630. 색종이 만들기 [파이썬(python) - 분할 정복] 아래 과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수) 이라면 종이를 ..
2022.04.17
no image
[알고리즘 일기 - 파이썬] 231. 멀티탭 스케줄링
1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net Baekjoon 1700. 멀티탭 스케줄링 [파이썬(python) - 그리디] 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전기용품의 플러그를 뺐다 꽂았다 하는 불편함을 겪고 있다. 그래서 준규는 자신의 생활 패턴을 분석하여, 자기가 사용하고 있는 전기용품의 사용순서를 알아내었고, 이를 기반으로 플러그를 빼는 횟수를 최소화..
2022.04.08
no image
[Java] 객체 지향 프로그래밍 (1)
객체 기능을 수행하는 데이터의 단위 객체 지향 프로그래밍 vs 절차 지향 프로그래밍 객체 지향 프로그래밍 객체 간의 관계가 존재 객체의 속성, 기능, 협력 구현 필요 존재하는 것을 추상화한 뒤 코드화를 진행 대표 언어 : C++, java 절차 지향 프로그래밍 시간의 흐름에 따른 프로그래밍 컴퓨터의 작업 처리 방식과 유사 컴퓨터의 처리구조와 유사해 실행속도가 빠름 대표 언어 : C ⭐️ 객체 지향의 반대가 절차 지향, 절차 지향의 반대가 객체 지향은 아니다! Ref. 절차지향 VS 객체지향 절차지향(Procedural Programming)이란? 절차지향 프로그래밍이란 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법 brownbe..
2022.04.07
no image
[알고리즘 일기 - 파이썬] 230. 가르침
1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net Baekjoon 1062. 가르침 [파이썬(python) - 백트래킹] 남극에 사는 김지민 선생님은 학생들이 되도록이면 많은 단어를 읽을 수 있도록 하려고 한다. 그러나 지구온난화로 인해 얼음이 녹아서 곧 학교가 무너지기 때문에, 김지민은 K개의 글자를 가르칠 시간 밖에 없다. 김지민이 가르치고 난 후에는, 학생들은 그 K개의 글자로만 이루어진 단어만을 읽을 수 있다. 김지민은 어떤 K개의 글자를 가르쳐야 학생들이 읽을 수 있는 단어의 개수가 최대가 되는..
2022.04.06
no image
[Java] Basic Java (2)
증가, 감소 연산자 연산자가 항의 앞에 있는 가 뒤에 있는 가에 따라 연산 시점과 결과가 달라진다. 문장(statement)의 끝 ; 을 기준으로 연산결과를 적용한다. public class OperatorTest { public static void main(String[] ars) { int gameScore = 150; int lastestScore = ++gameScore; // gameScore += 1; int lastScore = gameScore++; System.out.println(lastestScore); System.out.println(lastScore); System.out.println(gameScore); } } 단락 회로 평가(short circuit evaluation) ..
2022.04.04
no image
[알고리즘 일기 - 파이썬] 228. N-Queen
9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net Baekjoon 9663. N-Queen [파이썬(python) - 백트래킹] N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (1 ≤ N < 15) 출력 첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 입력 예시 8 출력 예시 92 ❧ 정답 - pypy 통과 🔎 IDEA) 백트래킹 - 백트래킹 조..
2022.03.31
no image
[알고리즘 일기 - 파이썬] 227. 빗물
14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net Baekjoon 14719. 빗물 [파이썬(python) - 시뮬레이션] 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까? 입력 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치부터 차례대로 W개 주어진다...
2022.03.30
no image
[알고리즘 일기 - 파이썬] 226. 연산자 끼워넣기
14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net Baekjoon 14888. 연산자 끼워넣기 [파이썬(python) - 백트래킹] N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 ..
2022.03.30
no image
[알고리즘 대비 - 이코테] 7. 다이나믹 프로그래밍
다이나믹 프로그래밍(DP) 동적 계획법 💡 프로그래밍 분야의 '동적 메모리 할당'과 같은 '동적'의 의미가 아님을 유의 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법 이미 계산된 결과(작은 문제)는 별도의 메모리 영역에 저장 └ 불필요한 계산을 줄임 사용 조건 최적 부분 구조(Optimal Substructure) 큰 문제를 작은 문제로 나눠 작은 문제의 답을 모아 큰 문제를 해결 중복되는 부분 문제(Overlapping Subproblem) 동일한 작은 문제를 반복적으로 해결 Example. 피보나치 수열 $ a_n=a_{n-1}+a_{n-2}, a_1 = 1, a_2 = 1 $ 피보나치 수열의 점화식 피보나치 수열처럼 수열 형태로 나타나는 경우가 많으므로 배열이나 리스트를 이..
2022.03.30