분류 전체보기
-
Python 백준 1495번 - 기타리스트 (메모리 초과 해결)백준문제정리 2021. 5. 19. 01:36
문제 Day Of Mourning의 기타리스트 강토는 다가오는 공연에서 연주할 N개의 곡을 연주하고 있다. 지금까지 공연과는 다른 공연을 보여주기 위해서 이번 공연에서는 매번 곡이 시작하기 전에 볼륨을 바꾸고 연주하려고 한다. 먼저, 공연이 시작하기 전에 각각의 곡이 시작하기 전에 바꿀 수 있는 볼륨의 리스트를 만들었다. 이 리스트를 V라고 했을 때, V[i]는 i번째 곡을 연주하기 전에 바꿀 수 있는 볼륨을 의미한다. 항상 리스트에 적힌 차이로만 볼륨을 바꿀 수 있다. 즉, 현재 볼륨이 P이고 지금 i번째 곡을 연주하기 전이라면, i번 곡은 P+V[i]나 P-V[i] 로 연주해야 한다. 하지만, 0보다 작은 값으로 볼륨을 바꾸거나, M보다 큰 값으로 볼륨을 바꿀 수 없다. 곡의 개수 N과 시작 볼륨 S..
-
가장 큰 수 - 프로그래머스[Level 2], 코드 비교하기프로그래머스문제정리 & Python잡다한것 2021. 5. 13. 00:25
문제 [1,2,3,4,5,6] 같은 int 형 list 가 들어왔을때, 모두 이어 붙혔을 때 가장 큰 수를 찾는 단순한 문제 시도 처음에는 단순하게 조합을 구하고 거기서 가장 큰 수를 찾으면 되겠다, 라고 생각했으나 가만 생각해보면 모든 조합을 구할때 원소가 100,000개라면 시간 복잡도가 난리날 것으로 예상했다. 참고 1 2 3 from itertools import permutations permutations(numbers, i) #i 는 몇개를 가지고 조합을 할 지 결정 cs 역시나 시도해본 결과, 전부 시간 초과가 발생했다 :) 그래서 두번째 시도를 했다. 생각한 알고리즘을 설명하자면, 각 원소마다 앞에 있는 값을 비교해 가면서 같으면 다음 원소를 비교하고, 다를 때 정렬을 시켜주는 식으로 내..
-
Part1 - 애플리케이션 설계와 인터페이스 설계 [정보처리기사필기 요약]정보처리기사 2021. 2. 9. 17:05
1과목 - 4,5 chapter 정리 모듈 : 전체 프로그램을 기능 단위로 분해함, sw 성능을 향상, 시스템 디버깅, 시험, 통합 및 수정에 용이, 추상화되어재사용 및 공유 가능한 수준으로 만들어진 기능 단위 모듈의 기본 요소 : 입력 요소, 출력 요소, 기능 요소, 기관 요소, 내부 자료 요소 공유도(Fan-in)와 제어도(Fan-out) 공유도 : 상위 모듈의 수 제어도 : 하위 모듈의 수 모듈의 개수 및 비용 간 상관도 X- 모듈 개수, Y- 노력비용 모듈 통합 비용은 모듈 개수가 늘어나면 노력 비용이 감소 모듈 별 개발 비용은 모듈 개수가 늘어나면 노력 비용이 증가함 둘의 교차점이 최소 노력 비용 공통 모듈의 원칙 : 정확성, 명확성, 완전성, 일관성, 추적성 공통 모듈의 재사용 범위에 따른 분..
-
Python 백준 10610번 - 30 (시간 초과 해결)백준문제정리 2021. 2. 4. 17:00
문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어 한다. 미르코를 도와 그가 만들고 싶어 하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 10^5개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는다면, -1을 출력하라. 나의 생각 이 문제를 보고 몇 가지 조건들이 떠올랐다. 1. 30, 150, 180.. 이렇게 끝자리가 0으로 반드시 끝나야 한다는 것 2. 입력한 값의 자리 수보다는 배수가 될(출력) 것의 길이가 크거나 같아야 한다는 것 ..
-
Part1 - 요구사항과 화면 설계 [정보처리기사 요약]정보처리기사 2021. 2. 4. 00:00
1과목 - 2, 3chapter 정리 현행 시스템 파악 절차 시스템 구성/기능 현황 및 인터페이스 파악 시스템 아키텍처 및 소프트웨어 파악 하드웨어 및 네트워크 파악 저장 장치 DAS - 하드 디스크와 같은 데이터 저장 장치를 호스트 버스 어댑터에 직접 연결하는 방식 NAS - 서버와 저장 장치를 네트워크로 연결하는 방식, 구성 설정이 간편 SAN - DAS + NAS, 광케이블과 광채널 스위치를 통해 근거리 네트워크 환경을 구성하여 빠른 속도로 데이터를 처리 가상화 기계 운영 방법 하이퍼바이저형 : 컴퓨터 시스템에 다수의 OS를 운영할 수 있게 하는 프로그램 호스트 하이퍼바이저형 : 컴퓨터 하드웨어상에 OS를 설치하고, 그 위에 하이퍼바이절를 설치, 하이퍼 바이저 위에 다시 여러 개의 VM 기계를 설치..
-
Part1 - 소프트웨어의 종류 및 개발 방법론 [정보처리기사 요약]정보처리기사 2021. 2. 3. 01:59
1과목 - 1chapter 정리 시스템 소프트웨어 기본요소 : 입력, 출력, 처리, 제어, 피드백 플랫폼(Platform) : 많은 응용 프로그램들을 쉽고 편리하게 사용할 수 있도록 지원해주는 하드웨어나 소프트웨어 환경 플랫폼의 기능 : 비용절감, 그룹 형성으로 네트워크 효과, 개발 생산성 향상 플랫폼의 성능 특성 분석 항목 : 가용성, 응답시간, 정확성, 사용률 프레임워크 : 목적을 달성하기 위해 복잡하게 연결되어 있으며, 문제를 해결하기 위한 구조이자 sw 개발에 있어 하나의 뼈대 역할 프레임워크 특징 : 모듈화, 재사용성, 확장성, 제어의 역 흐름 프레임워크를 적용할 경우 기대효과 : 개발 용의성, 품질 보증, 변경 용이성, 유지보수 용이성, 재사용성 향상, 표준화율 향상, 상호 운용성 향상 컴포넌..