본문 바로가기

분류 전체보기

(43)
[백준] 1822. 차집합 백준 1822. 차집합 1822번: 차집합 첫째 줄에는 집합 A의 원소의 개수 n(A)와 집합 B의 원소의 개수 n(B)가 빈 칸을 사이에 두고 주어진다. (1 ≤ n(A), n(B) ≤ 500,000)이 주어진다. 둘째 줄에는 집합 A의 원소가, 셋째 줄에는 집합 B의 원소 www.acmicpc.net ✓ 난이도 : 실버 4 ✓ 문제 풀이 : 이분탐색, set 함수 사용 (차집합) import math import sys input = sys.stdin.readline n, m = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) res = [] b.sort..
[백준] 10815. 숫자 카드 백준 10815. 숫자 카드 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net ✓ 난이도 : 실버 5 ✓ 문제 풀이 : 이분탐색 백준 1920. 수찾기와 유사한 문제 import sys input = sys.stdin.readline n = int(input()) num = list(map(int, input().split())) m = int(input()) chk = list(map(int, input().split())) num.sort() for c in chk: s, e =..
[백준] 10816. 숫자 카드 2 백준 10816. 숫자카드 2 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net ✓ 실버 4 ✓ 문제풀이 : 카운터 함수 from collections import Counter import sys input = sys.stdin.readline n = int(input()) num = list(map(int, input().split())) m = int(input()) chk = list(map(int, input().split())) res = [] count = Coun..
[백준] 1920. 수찾기 백준 1920. 수찾기 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net ✓ 난이도 : 실버 4 ✓ 문제풀이 : 이분탐색 조건에서 정수의 수가 100,000으로 주어졌기 때문에 O(NlogN) 정도의 시간복잡도가 요구된다. 이분탐색 알고리즘의 경우 시간복잡도가 O(logN)이므로 해당 조건을 만족할 수 있다. import sys import time input = sys.stdin.readline n = int(input()) arr = list(map(int, ..
정보처리기사 실기 7장. 애플리케이션 테스트 관리_4 7-10. 복잡도 • 복잡도 (Complexity) 시스템/시스템 구성 요소/소프트웨어의 복잡한 정도 • 시간 복잡도 알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화한 것 - 점근 표기법의 종류 빅오 표기법 (Big-O Notation) 알고리즘의 실행 시간이 최악일 때를 표기 입력 값에 대해 알고리즘을 수행했을 때 명령어의 실행 횟수는 어떠한 경우에도 표기 수치보다 많을 수 없음 세타 표기법 (Big-θ Notation) 알고리즘의 실행 시간이 평균일 때를 표기 입력 값에 대해 알고리즘을 수행했을 때 명령어 실행 횟수의 평균적인 수치를 표기 오메가 표기법 (Big-Ω Notation) 알고리즘의 실행 시간이 최상일 때를 표기 입력값에 대해 알고리즘을 수행했을 때 명령어의 실행 횟수는 어..
정보처리기사 실기 7장. 애플리케이션 테스트 관리_3 7-6. 테스트 케이스 / 테스트 시나리오 / 테스트 오라클 • 테스트 케이스 (Test Case) 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 테스트 항목에 대한 명세서 ‣ 개발한 소프트웨어가 제대로 작동하는지를 확인하기 위한 데이터나 실행 조건 등의 집합 ‣ 입력 값, 실행 조건, 기대 결과 등 • 테스트 시나리오 (Test Scenario) 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스를 묶은 집합 ‣ 테스트 케이스를 적용하는 구체적인 절차 명세 ‣ 순서에 대한 구체적인 절차, 사전 조건, 입력 데이터 등 • 테스트 오라클 (Test Oracle) 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참값을 대입하여 비교하는 기법 ‣ 예상 결과를 계산하거나 확인 - ..
정보처리기사 실기 7장. 애플리케이션 테스트 관리_2 7-4. 개발 단계에 따른 애플리케이션 테스트 • 개발 단계에 따른 애플리케이션 테스트 ✓ 테스트 레벨 소프트웨어의 개발 단계에 따라 분류된 것 ; 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트 ✓ V-모델 애플리케이션 테스트와 소프트웨어 개발 단계를 연결하여 표현한 것 • 단위 테스트 (Unit Test) 모듈이나 컴포넌트에 초점을 맞춰 테스트 ‣ 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행 ‣ 인터페이스, 외부적 I/O, 자료 구조, 독립적 기초 경로, 오류 처리 경로, 경계 조건 등 검사 ‣ 구조 기반 테스트와 명세 기반 테스트로 나뉘나, 주로 구조 기반 테스트를 시행 • 통합 테스트 (Integration Test) 단위 테스트가 완료된 모듈들을 결합해 하나의 시스템..
정보처리기사 실기 7장. 애플리케이션 테스트 관리_1 7-1. 애플리케이션 테스트 • 애플리케이션 테스트 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차 ‣ Validation : 사용자 입장에서 개발된 소프트웨어가 고객의 요구사항을 만족시키는지 확인 ‣ Verification : 개발자 입장에서 소프트웨어가 기능을 정확히 수행하는지 검증(점검) • 애플리케이션 테스트의 기본 원리 완벽한 테스트 불가능 소프트웨어의 잠재적인 결함을 줄일 수 있지만, 소프트웨어에 결함이 없다고 증명할 수 없음 파레토 법칙 (Pareto Principle) 애플리케이션의 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙 살충제 패러독스 (Pesticide Paradox) 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 ..