BOJ - 준살 프로그래밍 대회 7513
·
코딩테스트
해결방법문제를 해석하는게 푸는것보다 어려웠던 문제. 테스트 케이스 수만큼 반복하는 전체 반복문 안에 단어의 수를 구하는 반복문, 참가자의 수만큼 반복하는 반복문, 그 안에 비밀번호 정보(정수)를 입력받고 그것을 배열의 key로 사용하여 출력해주는 반복문 등, 그냥 문제 해석이 어려웠던 문제이다. 정답 코드#include #include #include using namespace std;int main(){ int Testcase, m, n, k, count = 1, temp; cin >> Testcase; for (int i = 0; i > m; vector words(m); for (int j = 0; j > words[j]; } ci..
BOJ - 좌표 정렬하기 11650
·
코딩테스트
해결방법pair와 sort를 이용하여 오름차순으로 정렬해주면 된다. 정답 코드#include #include #include using namespace std;int main(){ int N; cin >> N; vector> v(N); for (int i = 0; i > v[i].first >> v[i].second; } sort(v.begin(), v.end()); for (int i = 0; i
BOJ - 설탕 배달 2839
·
코딩테스트
해결방법5로 나눠봤을때 나머지가 0이 아니라면 보류하고 3으로 빼본다.그 과정을 0보다 큰 동안 반복하다가 5로 나눌수 있다면 나눈 값과 3으로 뺀 횟수를 합산하여 출력한다.루프를 반복하다가 N이 0보다 작아진다면 5와 3만으로 나눌수 없다는 뜻이기 때문에 -1을 출력한다. 정답 코드#include using namespace std;int main(){ int N; cin >> N; int count = 0; while (N >= 0) { if (N % 5 == 0) { count += N / 5; cout
소프트웨어의 정의와 특성
·
Programming/기타
소프트웨어의 정의 응용 프로그램이나 데이터처럼 컴퓨터를 제어하고, 명령을 수행할 수 있게 만들어주는 프로그램이라고 할 수 있다. 원래는 문자 그대로 컴퓨터에서 동작되거나 처리되는 것만을 소프트웨어라고 불렀지만, 현재는 소프트웨어의 범위가 넓어져 수많은 것들이 소프트웨어 취급을 받고 있다. (게임, 네비게이션 지도 등등도 포함된다.)  소프트웨어는 크게 시스템 소프트웨어와 응용 소프트웨어로 나눌 수 있다. 시스템 소프트웨어는 응용 소프트웨어가 작동하는 환경을 만들거나 컴퓨터를 유지, 관리하는데 사용되는 소프트웨어이다. 그 특성때문에 플랫폼이라고도 부른다. 사용자가 컴퓨터 하드웨어의 물리적인 특성이나 구조를 전부 알지 못하더라도 컴퓨터 시스템을 사용할 수 있게 도와주는 역할을 한다.대표적인 시스템 소프트웨어..
인터페이스와 추상클래스
·
Programming/기타
인터페이스인터페이스란?본래 프로그래밍 언어에서는 중요한 개념이 하나 존재한다. 같은 구문이 두 가지 이상의 의미로 해석될 여지가 있어서는 안 된다라는 것이다. 이러한 모호성을 해결하기 위해 만약 예약어가 겹치는 경우 어느 라이브러리의 예약어인지를 추가로 작성을 해줘야 한다. 이러한 이유로 다중 상속은 본래 불가능하지만 가끔 필요한 경우가 존재한다. 이러한 경우를 해결하기 위해 도입 된 것이 바로 인터페이스이다. 인터페이스는 interface 키워드를 이용하여 선언이 가능하다. 그러나 몇가지 제한사항이 존재하는데,1. 인터페이스는 추상 메서드와 상수만을 포함한다.2. 접근 제한자는 모두 public이고, 인터페이스를 상속받은 클래스에게 오버라이드를 강제한다.3. 상속받은 클래스에서 구현하는 메서드도 모두 ..
TDD(Test- Driven Development)에 대하여
·
Programming/기타
흔히 테스트 주도 개발이라고 하는 이 개념은 짧은 개발 사이클을 반복하여 소프트웨어를 개발하는 방법론이다. 개념 자체는 이전부터 있었거나 개발되었을 수 있으나 공식적으로는 Kent Beck이라는 사람이 2003년에 개발한 것으로 알려져 있다.이 TDD에 대해서 좀 더 자세히 알아보자. TDD란 이름에서 알수 있듯 이 방법론은 테스트가 주를 이루게 된다. 흔히들 폭포수 모델이라고 하는 이 개발 방식을 한번 보자.일반적인 개발 방식은 그림처럼 요청 ->설계 -> 개발 -> 테스트 -> 배포 -> 유지보수 순으로 흘러가지만, 이 개발 방식은 다음과 같은 위험성이 있다.1. 소비자의 요청사항이 애매할 수 있다.2. 그로 인해 설계가 까다로워진다.3. 2의 원인으로 인해 테스트 비용이 증가하게 되고,4. 종합적인..