https://www.acmicpc.net/problem/14925 14925번: 목장 건설하기 랜드 씨는 퇴직금으로 땅을 사서 목장을 지으려 한다. 그가 사려고 소개받은 땅은 직사각형이고 대부분 들판이지만, 여기저기에 베기 어려운 나무와 치울 수 없는 바위가 있다. 그는 목장을 하 www.acmicpc.net 아 어렵다 원래 dfs밖에 기억이 안났는데 문제유형보고 DP란것을 알았다 dfs로 풀면 대각선&상하좌우 8방향을 모두 확인해야하니까 시간초과가 날것 같다 0의 개수를 dp 테이블에 누적하여 저장한다. 단 !! 1 또는 2를 만났을 때는 누적하면 안된다. 이걸 방지하기 위해서 dp[i][j] = min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1])+1 대각선방향, 위쪽방향, 아..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
·개발일기
1일1커밋.. 언제선가부터 계속 해오고 있었었는데, 어제 repository를 정리하면서 삭제를 했는데, repository를 지우니까 커밋 기록도 같이 날라가서 잔디밭에 구멍이 생기게 되었다 ㅠㅠ 그래서 알아보게 된 깃허브 커밋 조작 방법을 정리해보고자 한다 git log 해당 레포지토리로 들어가서 git 의 log를 살펴본다 시간대를 변경하고 싶은 커밋 기록의 해시값을 복사하자. commit뒤에 있는 값이 해시값이다. git rebase -i 해시값 이렇게 명령어를 입력하면 vi 편집기로 commit 정보를 수정 할 수 있다. pick 이라고 되어있는 부분을 edit으로 바꿔준다 바꿔준 다음 :wq! 입력해서 write작업 한 것을 저장하고 다시 터미널로 돌아간다 git commit --amend -..
https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net n = int(input()) task = [] price = [] # price dp = [0] * (n+1) for _ in range(n): t, p = map(int, input().split()) task.append(t) price.append(p) # result 예제 10번에서 예외케이스 처리 -> dp[10]이 최댓값(60) + price[7] 로 갱..
https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr total_member = 0 total_profit = 0 rates = [10, 20, 30, 40] def calc(rate_list, users, emoticons): temp_member = 0 temp_profit = 0 for user in users: rate, money = user user_profit = 0 for i in range(len(emoticons)): if rat..
# 6 # 3 3 3 3 3 3 # 2 3 3 3 3 3 # 2 2 2 3 2 3 # 1 1 1 2 2 2 # 1 1 1 3 3 1 # 1 1 2 3 3 2 n = int(input()) array = [] for i in range(n): array.append(list(map(int, input().split()))) new_array = list(map(list, zip(*array[::-1])))
https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 원래는 row 별 갈수 있는 길, column 별 갈 수 있는길을 각각 함수로 만들어줄까 했다. 그래서 원래는 row 체크중이면 type 1 column 체크중이면 type2로 할까했는데.. 생각해보니까 check_row 함수를 재활용하고 배열을 90도 시계방향으로 돌려서 array를 parameter로 전달하면 될것 같아서 따로 column 을 확인하는 함수를 만들지 않았다 (사실 귀찮아서..) 그래서 코드에 저 ty..
https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 2019년도 블라인드 공채 문제이다 솔직히 이제는 이런 문제 안나올 것 같다 ㅋㅋ 카카오는 가끔 이렇게 실질적인 기능 개발을 연상케 하는 문제를 출제하는 것 같다. 확실히 예전보다 지금이 더 코딩테스트 레벨이 상향 평준화 되고 있는 느낌을 받는다. from collections import defaultdict def solution(record): answer = [] table = de..
https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net dfs 로 모든 경우를 탐색하는 브루트포스로 풀었다 그런데 코드가 내가 봐도 안예쁘긴하다 다시 리팩토링해봐야겠다 함수를 애용하자 ㅎㅎ ;; import sys import copy sys.setrecursionlimit(10**6) n, m = map(int, input().split()) array = [] total = 0 answer = int(1e9) camera = [] vis..