Algorithm (PS)

·Algorithm (PS)
https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 이거 DP로도 풀수있다는데 방법의 수가 1억개 보다는 작으니까 그래프 구현으로 풀었다 n = int(input()) array = [] answer = 0 dp = [[0] * n for _ in range(n)] for i in range(n): array.append(list(map(int, input().split()))) def move(x1, y1, x2, y2,..
·Algorithm (PS)
https://www.acmicpc.net/problem/20115 20115번: 에너지 드링크 페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한 www.acmicpc.net 요상하게 요즘 그리디 문제를 많이 푸는 느낌? 문제에서 주어진 수식에 따르면 Xa + (Xb/2) 또는 Xb + (Xa/2) 두가지 선택을 할 수가 있다. 최대값을 구하는 것이므로, 더하는 값에 더 큰수가 오게하고, 2로 나누는 값에 작은 수가 오게 하면 greedy하게 풀 수 있다. # 에너지드링크 n = int(input()) array = list(map(int, input().split()..
·Algorithm (PS)
https://www.acmicpc.net/problem/17615 17615번: 볼 모으기 첫 번째 줄에는 볼의 총 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 다음 줄에는 볼의 색깔을 나타내는 문자 R(빨간색 볼) 또는 B(파란색 볼)가 공백 없이 주어진다. 문자열에는 R 또는 B 중 한 종류만 주 www.acmicpc.net 1) 15% 맞았습니다 달성.. ㅠㅠ import sys input = sys.stdin.readline n = int(input()) array = input() answer = 0 r_move = 0 b_move = 0 r_end = 0 b_end = 0 # 맨 오른쪽의 알파벳 개수 카운트 for i in range(n-1, -1, -1): if array[i] =..
·Algorithm (PS)
https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 0) 그래프 입력 받기 : 파이썬의 defaultdict이라는 훌륭한 내장 라이브러리가 있는데, 이걸 활용하면 쉽다. 그리고 문제에서 1부터 카운트하므로 -1 처리를 해주어서, 0부터 노드가 시작하게끔 처리해주었다. 이래야 나중에 index값으로 접근하기 용이하므로.. graph = defaultdict(list) for i in range(n): data = list(map(int, input().split())) ..
·Algorithm (PS)
https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net from itertools import permutations import copy import sys input = sys.stdin.readline n, m, k = map(int, input().split()) array = [] for i in range(n): array.append(list(map(int, input().split()))) # 배열 돌리기 ..
·Algorithm (PS)
외판원 순회 https://www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 방문했는지 확인 하는 법 & 연산자를 통해, 겹치는 1이 있으면 1이상의 값이 나올 것이다 겹치는 게 없으면 0이 나온다 -> 아직 방문하지 않은 도시 var visited = 011 var i = 100 print(visited & i) // 100 import Foundation var N = Int(readLine()!)! var matrix..
·Algorithm (PS)
https://www.acmicpc.net/problem/12933 12933번: 오리 첫째 줄에 영선이가 녹음한 소리가 주어진다. 소리의 길이는 5보다 크거나 같고, 2500보다 작거나 같은 자연수이고, 'q','u','a','c','k'로만 이루어져 있다. www.acmicpc.net Swift로 풀때 문자열을 for문으로 순회해서 하나씩 값을 확인할 때, Array로 만들고 숫자 인덱스로 접근할 수 있게 하는것이 훨씬 편하다 라는 것을 배운 문제이다 var word = "hello" 라는 문자열을 "h", "e", "l", "l", "o" 이렇게 접근하고 싶다면 var idx = input.index(input.startIndex, offsetBy: i) 이렇게 index로 꺼내고 word[inde..
·Algorithm (PS)
https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 행렬의 곱은 (n*k) 사이즈 행렬과 (k*m) 사이즈 행렬이 곱해졌을 때 (n*m) 크기의 행렬을 리턴한다는 특징이 있다 import Foundation func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] { let n = arr1.count // 세로 let m = arr1[0].count // arr1 가로 == arr2 세로 let t = ..
minjiwoo
'Algorithm (PS)' 카테고리의 글 목록 (15 Page)