목록분류 전체보기 (241)
곽로그
1. 개념 과거 유사경험을 바탕으로 회의를 통해 산정하는 비과학적인 기법이다. 전문가들의 회의를 통해 소프트웨어 개발 비용을 계산하는 것이다. 2. 전문가 판단기법 1) 개념: 경험이 많은 여러 전문가가 프로젝트를 수행하는데 비용이 어느 정도 들어가는지 평가한 금액을 개발 비용으로 산정 2) 문제점: 경험에만 의존할 경우 부정확할 수 있다. 3. 델파이 기법 1) 개념: 전문가 판단기법을 보완한 기법으로 조장자를 두어서 전문가들이 편견이나 분위기에 영향을 받지 않도록한다 2) 과정 ㄱ. 조정자는 전문가가 모여 비용 산정을 하는 회의에서 간사 역할을 한다 ㄴ. 전문가는 비용을 산정할 수 있는 자료를 충분히 검토하고 필요하다면 의견을 나눌 수 있다. ㄷ. 전문가 각자가 비용을 산정한다. 이때 계산된 결과를 ..
1. 개요 1) 계획 단계에서 하는 것: 문제정의, 타당성 분석, 소프트웨어 개발비용 산정, 일정계획, 위험분석 2) 목표: 목표하는 기간안에 목표하는 품질의 소프트웨어를 만들수 있도록 한정된 자원(돈, 시간 등)을 계획하는 것 2. 문제정의 현재상황과 구현될 시스템의 목표 및 제약조건들을 포함해 무엇을 개발할 것인지 명확히 정의하고, 개발 범위를 결정한다. 3. 타당성 분석 경제적 타당성(투자효율성, 시장성)과 기술적 타당성(기술적인 어려움은 없는지) 법적타당성(소유권문제)를 분석. 즉 개발하려고 하는 소프트웨어를 개발할 가치가 있는 것인지, 문제는 없는 것인지 따져보는 것 4. 개발비용 산정 1) 개발비용 산정의 어려움: 개발자 능력에 따라 소프트웨어 개발의 기간과 품질이 달라지므로 소프트웨어 개발은..
1. 소프트웨어의 정의 프로그램(코드)을 비롯해 개발 과정에서 생성되는 모든 산출물(자료구조, 데이터베이스구조, 테스트 결과 등)을 포함하고, 각 단계에서 만들어지는 문서와 사용자 매뉴얼 등도 포함한다. 2. 소프트웨어 분류 1) 관리 소프트웨어: 자료를 받아들여 가공한 후 정보를 제공하는 소프트웨어 (예: 인터넷뱅킹 시스템, 대학 종합정보시스템) 2) 제어 소프트웨어: 단순히 데이터베이스를 이용하여 자료를 처리해서 정보를 제공하는 형태가 아닌, 각종 센서를 이용하거나 기기들의 동작을 제어하는 소프트웨어(예: 교통신호 제어, 의료기기 제어, 공장장비 제어 소프트웨어) 3) 임베디드 소프트웨어: 장비나 기기에 내장된 형태의 소프트웨어 3. 소프트웨어 공학 1) 정의: 공학적인 원리를 적용하여 소프트웨어를 ..
2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (k ≤ 10) www.acmicpc.net 접근법 재귀로 풀어야 한다는 건 알았지만 재귀함수에 어떻게 인자를 넘겨야할지를 모르겠어서 구글링해봤더니 아주 친절하게 알려주시는 유투브를 발견했다. 이 분의 설명을 바탕으로 짠 코드는 아래와 같은데 문제는 시간초과가 난다는 거다. import java.util.Scanner; public class Main { public static char starArray[][]=new char[3072][6143]; public static void drawStar(int size, int x, int y) { if(size==3) { //별..
1차원 배열 사용하기 단계 1차원 배열 사용하기 www.acmicpc.net 문제를 풀때, 너무 어렵게 생각하는 경향이 있다. 이 문제도 충분히 쉽게 접근할 수 있는데 진짜 어렵게 풀었다. 코드를 올리기 정말 부끄럽지만, 나는 초짜니까. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in =new Scanner(System.in); int N=in.nextInt(); for(int i=0;i
2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net 접근법 문제에서의 핵심은 "0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지"이다. 여기서 0부터 9까지라고 해서 배열의 인덱스가 떠올랐다. number=A*B*C라고 하면 number를 10으로 나눈 나머지에 해당하는 인덱스의 값을 +1씩하면 되지 않을까 생각을 했다. 1) A,B,C를 입력받는다. 2) A,B,C를 곱한 수를 number에 대입한다. 3) 길이가 10인 (0부터 9까지)인 int배열을 선언한다. 4) while 4-1) number를 10으로 나눈 나머지에 해당하는 인덱스의 값을 1증가시킨가 4-2)..
1065번: 한수 어떤 양의 정수 X의 자리수가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. www.acmicpc.net 접근법 주어진 수의 각 자리수가 등차수열을 이루느냐를 판별하는게 관건이다. 그런데 여기서 한자리수, 두자리수(1,2,3, ...15...99)는 그냥 등차수열을 이룬다. 따라서 N이 100 이하의 수로 주어지면 N보다 작거나 같은 한수의 개수는 N개가 된다. 주어진 입력의 범위가 1000이하 인데 1000은 등차가 아니므로 제외하면 100부터 999까지의 수가 입력되었을 때 한수의 개수를 구하면 된다. 예를 들어 1..
4673번: 셀프 넘버 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 www.acmicpc.net 접근법 불린배열을 생각했다. n을 입력해서 d(n)을 구한다. 그러면 불린배열에서 인덱스가 d(n)인 요소의 값을 true로 바꾼다. (불린 배열을 선언하면 fasle로 초기화 되기 때문이다) 따라서 위의..