10828

편집 시간: 2022년 1월 31일 오후 5:52 코드 Algorithm/10828.py at main · Junroot/Algorithm 풀이 배열을 이용해서 쉽게 스택을 구현할 수 있다. 하지만 입력에 대한 주의점이 있다. input() 함수는 느리기 때문에, 많은 수의 입력이 있을 경우에는 input() 함수보다는 sys.stdin.readline() 을 사용하는 것이 좋다. 각 명령어를 입려할 때마다 출력을 하는 것 보다 출력할 값을 배열 형태로 모아둔 다음 “\n”.join(answers) 형태로 출력하는 것이 더 효율적이다.

2024-09-15 · 1 min · 62 words

10816

편집 시간: 2022년 2월 7일 오후 9:04 코드 Algorithm/10816.py at main · Junroot/Algorithm 풀이 lower bound, upper bound 이진 탐색을 이용해서 각 숫자의 개수를 구했다. 다른 사람 풀이 해쉬맵을 이용한 방법도 있다. from sys import stdin _ = int(input()) n = [int(i) for i in stdin.readline().split()] _ = int(input()) m = [int(i) for i in stdin.readline().split()] hashmap = {} for i in n: if i in hashmap: hashmap[i] += 1 else: hashmap[i] = 1 print(' '....

2024-09-15 · 1 min · 86 words

10814

편집 시간: 2022년 2월 7일 오후 8:36 코드 Algorithm/10814.py at main · Junroot/Algorithm 풀이 입력된 순서를 데이터로 함께 저장하고 있으면 정렬하기 쉽다. 이 때, 입력으로 받은 age 가 문자열인지 숫자인지 확인할 필요가 있다. 다른 사람 풀이 딕셔너리를 이용해서 푸는 방법도 있다. 키를 나이로 하는 딕셔너리에 입력순으로 추가하면 순서를 보장한채로 정렬이 가능하다. import sys input = sys.stdin.readline print = sys.stdout.write N = int(input()) people = {} for n in range(N): age, name = map(str, input()....

2024-09-15 · 1 min · 102 words

1074

편집 시간: 2022년 2월 12일 오후 9:51 코드 Algorithm/1074.py at main · Junroot/Algorithm 풀이 재귀로 분할 정복을 하면 쉽게 해결할 수 있다. 이 때, 굳이 모든 구역을 하나씩 셀필요 없이 찾고자 하는 위치가 포함된 구역만 재귀로 확인하면된다. 현재 정사각형의 1 / 4 크기의 칸의 개수는 구할 수 있기 때문이다.

2024-09-15 · 1 min · 49 words

10250

편집 시간: 2022년 1월 31일 오후 6:05 코드 Algorithm/10250.py at main · Junroot/Algorithm 풀이 X와 Y부분을 분리해서 생각해보자. H = 6, W = 12인 경우 아래를 만족한다. N이 1 ~ 6 → X = 1 7 ~ 12 → X = 2 13 ~ 18 → X = 3 … 따라서 X는 값이 H를 주기로 값이 1씩 증가한다. N이 1부터 시작하고 X도 1부터 시작하므로 다음의 공식이 만들어진다. X = (N - 1) // H + 1...

2024-09-15 · 1 min · 91 words

1018

편집 시간: 2022년 2월 7일 오후 8:30 코드 Algorithm/1018.py at main · Junroot/Algorithm 풀이 모든 경우를 탐색하면거 최소값을 구하면된다. 계산할 때, 제일 왼쪽위가 흰색인 경우와 검은색인 경우 두 가지로 나누어서 계산할 필요가 없다. 체스판의 크기가 64기 때문에 min(result, 64 - result) 로 구할 수 있다.

2024-09-15 · 1 min · 45 words

1012

편집 시간: 2022년 2월 9일 오후 6:44 코드 Algorithm/1012.py at main · Junroot/Algorithm 풀이 bfs또는 dfs로 인접한 배추들의 그룹의 개수를 구하면 된다.

2024-09-15 · 1 min · 22 words

1005

편집 시간: 2022년 3월 4일 오후 2:39 코드 Algorithm/1005.py at main · Junroot/Algorithm 풀이 내 풀이 건물 사이의 건축 선후 관계가 존재하기 때문에 위상 정렬을 사용하면 된다고 생각했다. 기본적으로 위상 정렬로 문제를 푸는데 다음 현재까지의 건축 시간을 자신보다 한 단계 앞의 건물 중에 가장 오래 걸린 건물을 기준으로 ㅅ계산을 해야되므로 이를 저장하는 리스트를 하나 만들었다.(dp) 마지막에 목적지 건물에 도착하면 (목적지 건물에 도착하는데 걸리는 시간) + (목적지 건물을 짓는데 걸리는 시간)을 출력하면 된다....

2024-09-15 · 1 min · 106 words

1003

편집 시간: 2022년 2월 9일 오후 6:13 코드 Algorithm/1003.py at main · Junroot/Algorithm 풀이 (n일 때 0의 개수) = (n-1일 때 0의 개수) + (n -2일 때 0의 개수) (n일 때 1의 개수) = (n-1일 때 1의 개수) + (n -2일 때 1의 개수) 위의 점화식을 찾아내면 풀 수 있다.

2024-09-15 · 1 min · 50 words

10-일일 빌드는 당신의 친구입니다

일일 빌드가 제공하는 장점 버그를 수정하고 나면, 테스터는 새 버전을 빠르게 얻어서 정말 해당 버그를 수정했는지 살펴보기 위해 다시 테스트 작업을 수행할 수 있다. 개발자는 테스트용 장비를 별도로 두지 않고서도 시스템의 버전 중 어느 버전도 망가뜨리지 않았다고 좀더 확신할 수 있다. 정기적인 일일 빌드 바로 직전에 변경을 체크인한 개발자는 어느 누구도 컴파일이 불가능한 상황을 만들어 버리지 않으리라는 사실을 안다. ‘빌드를 꺠버리는’ 어떤 파일을 체크인해 다른 사람을 방해하지 못한다. 미완성된 제품을 사용해야 하는 마케팅, 베타고객사이트와 같은 외부 그룹은 상당히 안정적으로 알려진 빌드를 구해서 잠시 동안 이를 사용해볼 수 있다....

2024-09-15 · 2 min · 245 words

10-실행 계획

MySQL 서버에서 보여주는 실행 계획을 읽고 이해하려면 MySQL 서버가 데이터를 처리하는 로직을 이해할 필요가 있다. 통계 정보 MySQL 서버는 5.7 버전까지 테이블과 인덱스에 대한 개괄적인 정보를 가지고 실행 계획을 수립했다. 하지만 이는 테이블 컬럼의 값이 실제로 어떻게 분포돼 있는지에 대한 정보가 없기 때문에 실행 계획의 정확도가 떨어지는 경우가 많았다. MySQL 8.0 버전부터는 인덱스되지 않는 컬럼들에 대해서도 데이터 분포도를 수집해 저장하는 히스토그램 정보가 도입됐다. 테이블 및 인덱스 통계 정보 비용 기반 최적화에서 가장 중요한 것은 통계 정보다....

2024-09-15 · 20 min · 4059 words

10-리액터 개요

애플리케이션 코드를 개발할 때는 명령형과 리액티브의 두 가지 형태로 코드를 작성할 수 있다. 명령형: 순차적으로 연속된 작업이 있으며, 각 작업은 한 번에 하나씩 그리고 이전 작업 다음에 실행된다. 리액티브: 데이터 처리를 위해 일련의 작업들이 정의되지만, 이 작업들은 병렬로 실행될 수 있다. 그리고 각작업은 부분 집합의 데이터를 처리할 수 있으며, 처리가 끝난 데이터를 다음 작업에 넘겨주고 다른 부분 집합의 데이터로 계속 작업할 수 있다. 리액티브 프로그래밍 이해하기 명령형 프로그래밍 한 번에 하나씩 만나는 순서대로 실행되는 명령어들로 코드를 작성 프로그램에서는 하나의 작업이 완전히 끝나기를 기다렸다가 그당므 작업을 수행한다....

2024-09-15 · 6 min · 1237 words

10-데이터베이스 테스트

애플리케이션 데이터베이스: 다른 애플리케이션이 접근할 수 없는 데이터베이스 데이터베이스 테스트를 위한 전제 조건 테스트를 작성하기 전에 통합 테스트가 가능하게끔 준비 단계를 수행해야 된다. 형상 관리 시스템에 데이터베이스 유지 모든 개발자를 위한 별도의 데이터베이스 인스턴스 사용 데이트베이스 배포에 마이그레이션 기반 방식 적용 데이터베이스를 형상 관리 시스템에 유지 데이터베이스를 테스트하는 방법의 첫 번째 단계는 데이터베이스 스키마를 일반 코드로 취급하는 것이다. 일반 코드와 마찬가지로 데이터베이스 스키마는 Git과 같은 형상 관리 시스템에 저장하는 것이 최선이다....

2024-09-15 · 7 min · 1363 words