전체 글

끄적끄적
코테준비/백준

[백준] 14888번: 연산자 끼워넣기 - Python

링크: https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 아이디어 부호의 개수만큼 부호가 들어있는 배열 생성 그 배열의 수열의 경우의 수를 구하는 백트래킹 생성 경우가 만들어지면 계산하여 리스트에 저장 리스트에서 최대 최소값을 출력 구현 (시간초과) import sys input = sys.stdin.readline # 부호가 올 수 있는 모든 경우의 수 백트래킹 def back(): i..

코테준비/백준

[백준] 15651번: N과 M (4) - Python

링크: https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 3번 문제에서 백트래킹 함수의 인자로 현재 숫자를 넘겨서 그 숫자부터 반복문을 돌리면 될 듯 구현 import sys input = sys.stdin.readline def back(cnt): if len(road) == m: for i in road: print(i, end=" ") print() return for i in range(cnt, n): road.append(i+..

코테준비/백준

[백준] 15651번: N과 M (3) - Python

링크: https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 전 N과 M 1, 2번 문제에서 백트래킹 내부 반복문의 조건만 없애주면 될 듯? 구현 import sys input = sys.stdin.readline def back(): if len(road) == m: for i in road: print(i, end=" ") print() return for i in range(n): road.append(i+1) back() road...

코테준비/백준

[백준] 15650번: N과 M (2) - Python

링크: https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 아이디어 백트래킹을 이용 road배열에 값을 넣으며 백트래킹을 진행하고 road의 길이가 m과 같아질 때 road 출력 백트래킹의 인자는 현재 숫자의 다음 숫자를 인자로 넘겨주어 그 수부터 다시 백트래킹을 진행하게 함 다시 돌아올 때에는 pop을 이용해 road를 다룸 import sys input = sys.stdin.readline def back(cnt): if len(road) =..

코테준비/프로그래머스

[프로그래머스] 야근지수 - Python

링크: https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 works의 sum이 n보다 작으면 0 return works 배열을 heapq로 만들어 가장 큰 수가 앞으로 오게 만든다. n번 반복하여 works에서 가장 큰 수에 -1을 해준다. 각 자릿수의 야근지수를 구해 더하고 return 구현(실패) import heapq def solution(n, works): # 야근을 하기전에 일이 끝남 if sum(works) < n: retu..

깃 & 깃헙

[Git & GitHub] branch / merge / 충돌 / rebase / reset / revert

브랜치(branch) 공식문서 정의에 의하면 A branch in Git is simply a lightweight movable pointer to one of thes commits - 간단한 어떤 '특정한 목표'를 가지고 코드를 수정하기 시작할 때 만든다. 브랜치명 수정 명령어 git branch -M 브랜치명 => 보통 차별 이슈로 master브랜치를 main으로 바꾸고 사용함 뭔가 할 일을 할 때 이슈를 생성 이슈에 맞는 브랜치 생성 생성한 브랜치로 전환하여 작업 브랜치 생성 명령어 git branch 브랜치명 브랜치 전환 명령어 git checkout 브랜치명 git switch 브랜치명 switch 명령어는 낮은 버전에서는 사용이 불가능하다. 브랜치 생성/전환을 동시에 git checkout..

코테준비/백준

[백준] 15683번: 감시 - Python

링크:https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 아이디어 미리 카메라의 위치를 한 번 돌아 찾아둔다. 그 좌표를 통해 백트래킹을 진행하여 1~5번 카메라의 조건만큼 for문을 돈다. 각 카메라의 조건이 지정된 순간 감시를 했다고 쳤을 때 사각지대의 갯수를 찾는다. 감시를 하는 경우는 상하좌우 #을 뿌리는 함수를 만들고 각 경우의 마다 필요한 함수를 쓴다. 예) 2번 카메라의 1번의 경우 좌측에 #을 뿌리는 함수와 우측에 #을 뿌..

깃 & 깃헙

[Git & GitHub] Staging Area / gitignore / commit

Staging Area? 쉽게 무대라고 생각하자 커밋에 포함되는 영역만 무대에 올리고 저장해야 한다. 불필요한 파일이 같이 커밋되는 상황은 없도록 하자! 무대에 올리기 git add 파일명 무대에서 내려와 git reset HEAD 파일명 이렇게 무대에 알맞은 파일들(커밋하고자 하는 파일들)을 올리고 커밋을 진행한다. git add . 이 명령어는 모든 수정사항을 무대에 올린다는 의미인데 꼭 꼭 status를 확인하며 주의해서 사용하자!! gitignore 운영체제나 쓰고 있는 응용프로그램 혹은 프레임워크에 따라 의도치 않게 생성되는 파일이 있는 경우가 있음. 이러한 파일들이 커밋에 포함되지 않게 하기 위해 gitignore를 사용한다. 또한 저장소에 올리기 민감한 정보들이 커밋에 포함되지 않게 하기 위..

코테준비/백준

[백준] 14502번: 연구소 - Python

링크: https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 아이디어 백트래킹을 통해 벽을 세우는 경우를 만듦 그 경우에서 2인 위치를 기준으로 bfs를 진행하여 감염이 된 상태를 만듦 이후 안전지대의 개수를 세고 result 값과 비교하여 더 큰 값을 result에 저장. 구현(pypy정답) import sys input = sys.stdin.readline # 백트래킹 def back(wall): if wall == 3: tmp_li = [mat[:] for..

예찬예찬
예찬예찬