분류 전체보기 78

백준 2470: 두 용액 (Python)

문제KOI 부설 과학연구소에서는 많은 종류의 산성 용액과 알칼리성 용액을 보유하고 있다. 각 용액에는 그 용액의 특성을 나타내는 하나의 정수가 주어져있다. 산성 용액의 특성값은 1부터 1,000,000,000까지의 양의 정수로 나타내고, 알칼리성 용액의 특성값은 -1부터 -1,000,000,000까지의 음의 정수로 나타낸다. 같은 양의 두 용액을 혼합한 용액의 특성값은 혼합에 사용된 각 용액의 특성값의 합으로 정의한다. 이 연구소에서는 같은 양의 두 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들려고 한다. 예를 들어, 주어진 용액들의 특성값이 [-2, 4, -99, -1, 98]인 경우에는 특성값이 -99인 용액과 특성값이 98인 용액을 혼합하면 특성값이 -1인 용액을 만들 수 있고, 이 용액이..

개발/백준 2022.08.21

백준 2467: 용액 (Python)

문제 2467번: 용액첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 -www.acmicpc.net해설투 포인터를 활용해 풀 수 있는 정석적인 문제이다. 위 문제의 경우 브루트포스 방식으로 풀 때 O(N^2)의 시간복잡도를 가지게 되어 시간초과가 뜨지만, 투포인터를 활용하면 O(N)에 풀 수 있다. 해당 문제는 입력 단계에서 리스트가 오름차순 정렬되어 있다. 따라서 리스트에 바로 투포인터를 적용해 풀면 된다.포인터가 움직이는 방식은 다음과 같다.left + right > 0 : 두 용액의 합이 양수이므로, 0에 가까워지려면 오른쪽을 당겨야 한다 left..

개발/백준 2022.08.20

MySQL 설치 에러: Can not perform keyring migration

mysqld: Can not perform keyring migration : Invalid --keyring-migration-source option. MySQL 설치 방법 포스팅을 쓰다가 이것저것 건들다보니 에러가 발생해버렸다. 에러 해결법을 구글링한 결과다. ⚠️ 주의사항!! 아래 방법으로 진행 시 data 폴더를 삭제하는 경우 데이터가 날아갈 수 있다. 가급적 설치 단계에서 오류가 발생한 경우에 이 방법을 따르고, 아니라면 데이터 백업을 해둔 후 시도하도록 하자. [*8월 19일 추가] 'net start mysql' 명령어를 한번 시도해보자. MySQL 프로세스가 중지 상태일 때 저 문제가 뜨는 것 같기도 하다. 1. MySQL 설치경로 복사 2. cmd 관리자 권한으로 실행 3. 'MySQL..

개발/Web 2022.08.19

[Windows] MySQL 압축파일(zip) 설치 방법

개요 가장 널리 사용되고 있는 오픈소스 DBMS인 MySQL을 설치해보자. 설치부터 cmd를 통해 DB에 접속하는 과정까지 함께 다뤄보려 한다. 설치 과정 MySQL 다운받기 1. MySQL 공식 다운로드 페이지 접속 https://www.mysql.com/downloads/ MySQL :: MySQL Downloads MySQL Cluster CGE MySQL Cluster is a real-time open source transactional database designed for fast, always-on access to data under high throughput conditions. MySQL Cluster MySQL Cluster Manager Plus, everything in My..

개발/Web 2022.08.18

[React 공부] Styled component 알아보기

개요 "Use the best bits ES6 and CSS to style your apps without stress" 라는 문구가 눈에 띈다. ES6와 CSS가 어떻게 한 문장에서 함께 쓰일 수 있는 것일까. 그것은 바로 'CSS in JS', 즉 JS 안에서 스타일의 수정을 즉시 가능하도록 하는 Styled Component의 매커니즘 때문이다. 일반적으로 이전까지의 웹 개발 방식은 HTML과 CSS, JS 모듈을 각각 다른 파일에 분리하여 두는 것이 최선의 방책으로 여겨졌으나, React를 필두로 한 컴포넌트 기반의 모던 개발 방식이 인기를 끌면서 한 컴포넌트에서 HTML, CSS, JS를 모두 해결할 수 있는 개발 방식이 주류가 되었다고 한다. Styled Component의 기본 문법을 보며..

개발/Web 2022.08.17

백준 1005: ACMCraft (Python)

문제 서기 2012년! 드디어 2년간 수많은 국민들을 기다리게 한 게임 ACM Craft (Association of Construction Manager Craft)가 발매되었다. 이 게임은 지금까지 나온 게임들과는 다르게 ACM크래프트는 다이나믹한 게임 진행을 위해 건물을 짓는 순서가 정해져 있지 않다. 즉, 첫 번째 게임과 두 번째 게임이 건물을 짓는 순서가 다를 수도 있다. 매 게임시작 시 건물을 짓는 순서가 주어진다. 또한 모든 건물은 각각 건설을 시작하여 완성이 될 때까지 Delay가 존재한다. 위의 예시를 보자. 이번 게임에서는 다음과 같이 건설 순서 규칙이 주어졌다. 1번 건물의 건설이 완료된다면 2번과 3번의 건설을 시작할수 있다. (동시에 진행이 가능하다) 그리고 4번 건물을 짓기 위해..

카테고리 없음 2022.08.03

백준 1987: 알파벳 (Python)

문제세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다.말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다.좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 프로그램을 작성하시오. 말이 지나는 칸은 좌측 상단의 칸도 포함된다해설  흔한 유형의 그래프 문제로, 이미 방문한 알파벳을 지나지 않으면서 갈 수 있는 최장거리를 구하는 것이 목표다. 예를 들어, 예제 입력 3의 경우는 다음 그림과 같이 10칸을 이동할 수 있..

개발/백준 2022.07.21

백준 2239: 스도쿠 (Python)

문제스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다음을 보자.위 그림은 참 잘도 스도쿠 퍼즐을 푼 경우이다. 각 행에 1부터 9까지의 숫자가 중복 없이 나오고, 각 열에 1부터 9까지의 숫자가 중복 없이 나오고, 각 3×3짜리 사각형(9개이며, 위에서 색깔로 표시되었다)에 1부터 9까지의 숫자가 중복 없이 나오기 때문이다.하다 만 스도쿠 퍼즐이 주어졌을 때, 마저 끝내는 프로그램을 작성하시오.유사문제백준 25870번은 문제 이름까지 똑같은 문제이며, 같은 소스코드 제출로도 통과가 가능하다.해설백트래킹을 활용해 풀 수 있는 대표적인 문제다.생각의 흐름만..

개발/백준 2022.07.19

백준 1799번: 비숍 (Python)

문제 서양 장기인 체스에는 대각선 방향으로 움직일 수 있는 비숍(bishop)이 있다. 과 같은 정사각형 체스판 위에 B라고 표시된 곳에 비숍이 있을 때 비숍은 대각선 방향으로 움직여 O로 표시된 칸에 있는 다른 말을 잡을 수 있다.  그런데 체스판 위에는 비숍이 놓일 수 없는 곳이 있다. 에서 체스판에 색칠된 부분은 비숍이 놓일 수 없다고 하자. 이와 같은 체스판에 서로가 서로를 잡을 수 없도록 하면서 비숍을 놓는다면 과 같이 최대 7개의 비숍을 놓을 수 있다. 색칠된 부분에는 비숍이 놓일 수 없지만 지나갈 수는 있다.   정사각형 체스판의 한 변에 놓인 칸의 개수를 체스판의 크기라고 한다. 체스판의 크기와 체스판 각 칸에 비숍을 놓을 수 있는지 없는지에 대한 정보가 주어질 때, 서로가 서로를 잡을 수..

개발/백준 2022.07.19

파이썬 체스판 대각선 경로 구현 팁

체스판에서 대각선 경로를 구할 때 어떻게 구현을 해야 할까?간단하게 보일 수도 있지만 막무가내로 구현하면 코드가 상당히 더러워질 수 있다. 백준 N-queen(9963), 비숍(1799) 문제에서 유용하게 활용할 수 있는 대각선 경로 판정 팁을 공유해본다.# 보드판 사이즈SIZE_X = 8SIZE_Y = 8def Diagonal(x, y, board): for i in range(SIZE_Y): for j in range(SIZE_X): if abs(i-y) == abs(j-x): board[i][j] = 1board = [[0]*SIZE_X for _ in range(SIZE_Y)]Diagonal(3, 3, board) # x, y 위치..

개발/백준 2022.07.19