분류 전체보기

·Algorithm (PS)
https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 맨처음 떠올랐던건 직관적인 DFS 이다 dfs로 갈수 있는 방향으로 한칸씩 이동하면서 마지막에 array[n-1][n-1]에 도달하면, (0,0) ~ (n-1,n-1)까지 가는 방법 으로 하나씩 카운트 했다. 주의할점은 dfs로 갈수있는 칸 체크할 때 가로방향이면 x가 범위안에 있는지, x < n-1 세로 방향이면 y가 범위안에 있는지 확인해주어야 한다. y < n-1 대..
·Algorithm (PS)
https://www.acmicpc.net/problem/2263 2263번: 트리의 순회 첫째 줄에 n(1 ≤ n ≤ 100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다. www.acmicpc.net 트리의 순회 중 preorder를 구해야 한다 우선 preorder, inorder, postorder에 대해서 알아야 한다 preorder : root -> left child -> right child inorder : left child -> root -> right child postorder : left child -> right child -> root 여기서 주목할 점은 postorder 에서 root가 배열에..
·Algorithm (PS)
https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 중위 표기식을 후위표기식으로 바꾸는 문제이다 1. 피연산자 인 경우 : 알파벳인지 아닌지는 isalpha() 함수로 간단히 확인할 수 있다. 파이썬은 짱이다 2. 연산자의 경우 : 우선순위에 따라 stack에서 빼낼지, 여부가 결정된다 우선순위는 ( 왼쪽 괄호 *, / 곱셈 나눗셈 -,+ 뺄셈 덧셈 순으로 높다 ( 가 나오면 우선순위가 가장 높으므로 일단 스택에 쌓는다 / 혹은 * 가 나오면 ..
1. 소프트웨어 설계 #1 플랫폼 성능 특성 분석 기법 : 성능 테스트, 산출물 점검, 사용자 인터뷰 사용자 인터뷰 - 현행 플랫폼 사용자 인터뷰를 통해 속도의 적정성 확인 성능 테스트 - 현행 플랫폼을 대상으로 성능, 부하 테스트 수행 산출물 점검 - 현행 플랫폼과 유사한 타사 제품의 성능 자료 분석 #4 객체 지향 방법론 종류 Jacobson (야콥슨) : 유즈케이스에 의한 접근 방법으로 유즈 케이스를 모든 모델의 근간으로 활용하는 객체 지향 방법론 종류 럼바우 : 객체지향 분석, 시스템 설계, 오브젝트 설계 및 구현의 4단계로 구성 럼바우의 객체 지향 분석 철차는 객체 모델링 (시스템의 정적 구조 표현)-> 동적 모델링 (객체의 제어 흐름/상호 반응 표현)-> 기능 모델링 (데이터 값의 변화 과정 ..
·Algorithm (PS)
https://www.acmicpc.net/problem/2011 2011번: 암호코드 나올 수 있는 해석의 가짓수를 구하시오. 정답이 매우 클 수 있으므로, 1000000으로 나눈 나머지를 출력한다. 암호가 잘못되어 암호를 해석할 수 없는 경우에는 0을 출력한다. www.acmicpc.net 두자릿수일수도 있고 한자릿수일수도 있다 이게 헷갈렸다 근데 이게 이 문제의 포인트 ! 단, 두자릿수는 10 ~ 26 이어야 한다. Z가 26이므로 마지막 알파벳이된다. 한자릿수는 0이면 안된다 !! A가 1부터 시작하기 때문이다 그리고 한자리수로 0보다 클때 : dp[i] += dp[i-1] 로 이전값을 더해준다 현재 검사중인 인덱스와 그다음 인덱스를 합쳐서 10이상 26이하의 두자릿수로 볼 수 있을 때 : 두자릿..
·Algorithm (PS)
https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 완전탐색으로 풀었다 ! 파이썬에 조합 라이브러리 combinations가 있는데, 조합 라이브러리를 완전 탐색에 유용하게 쓸 수 있었다. N 명중 N//2를 뽑는 조합을 구했고 뽑은 N//2 명의 팀원들은 start 팀이라고 한다. 그리고 start 팀에 들어가지 않는 팀원들은 link 팀에 속하게 되는데, 이를 집합 set() 화 시켜서 차집합으로 구했다 ! 그러면 현재 총 6명이 있었다고 치면, start = (1..
·Algorithm (PS)
permutations 를 써서 가능한 순열 조합들을 모두 확인해 보는 방법으로 풀었다. https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net # 10819 차이를 최대로 from itertools import permutations n = int(input()) array = list(map(int, input().split())) result = 0 cases = permutations(array, n) for case in cases: temp = 0 for..
·개발일기
터미널에서 zip -P (설정할 비밀번호) 압축후_파일_이름.zip 압축할 파일이름 명령어를 그대로 쳐주면 된다. 맥에서도 zip 파일 처리가 되는게 신기하다 ㅋㅋ
minjiwoo
'분류 전체보기' 카테고리의 글 목록 (59 Page)