목록전체 글 (265)
SW
1. 기상 모니터링 애플리케이션 알아보기기상 스테이션 : 실제 기상 정보를 수집하는 물리 장비WeatherData 객체 : 기상 스테이션으로부터 오는 정보를 추적하는 객체디스플레이 장비 : 사용자에게 현재 기상 조건을 보여주는 장비 WeatherData 객체로 현재 조건, 기상 통계, 기상 예보, 이렇게 3가지 항목을 디스플레이 장비에서 갱신해 가면서 보여 주는 애플리케이션을 만들어야 합니다. 2. WeatherData 클래스 살펴보기기상 스테이션에서 갱신된 데이터를 가져오는 일은 WeatherData 객체가 알아서 해줍니다.WeatherData에서 갱신된 값을 가져올 때마다 measurementChanged() 메소드가 호출됩니다. /* * 기상 관측값이 * 갱신될 때마다 * 이 메소드가 호출됩니다. ..
1. 오리 시뮬레이션 게임, SimUduck모든 오리는 꽥(quack) 소리를 낼 수 있고, 헤엄(swim)을 칠 수 있으므로 quack, swim 메소드는 슈퍼클래스로 작성합니다.모든 오리의 모양이 다르므로 display 메소드는 추상 메서드로 작성하고, 오버라이드 합니다. 2. 상속을 생각하기일부 오리가 하늘을 날아야 하는 기능을 추가해달라는 요청이 들어왔습니다.슈퍼클래스인 Duck에 fly를 추가해봅니다. 그럼 모든 오리는 날게 됩니다.날지 못하는 고무오리(RubberDuck)도 날게 되는 오류가 발생합니다. 위 그림처럼 RubberDuck이 날지 못하도록 fly에서 아무 동작 없이 오버라이딩을 해봅니다. 일단 해결은 되겠죠.그러나, 만약 날지못하는 여러 오리가 추가된다면 일일이 fly에서 아무 ..
0. Jest란? - 페이스북에서 만든 테스트 프레임워크 1. 사용 방법 1-1. 설치 npm install jest --save-dev 1-2. package.json의 scripts를 다음과 같이 수정 1-3. 코드 작성 * fn.js const fn = { add: (num1, num2) => (num1 + num2), }; module.exports = fn; * fn.test.js const fn = require('./fn'); test('1은 1이야.', () => { expect(1).toBe(1); }); test('2더하기 3은 5야.', () => { expect(fn.add(2, 3)).toBe(5); }); test('3더하기 3은 5야.', () => { expect(fn.add..
0. 제목 백준 9012 괄호 BOJ 9012 괄호 파이썬 9012 괄호 Python 9012 괄호 1. 문제 www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 2. 풀이 스택을 사용해서 '('이 나오면 push, ')'이 나오면 pop을 한다. 반복문 중간에 pop을 할 수 없을 때 또는 마지막에 스택의 원소 개수가 0이 아닐때 NO를 출력하고 아니면 YES를 출력한다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12..
0. 제목 백준 1157 단어 공부 BOJ 1157 단어 공부 파이썬 1157 단어 공부 Python 1157 단어 공부 1. 문제 www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 2. 풀이 입력 받은 문자를 upper함수를 이용해 대문자로 바꿔준다. dictionary로 등장한 문자를 key값으로, 개수를 value로 저장한다. 가장 많이 등장한 value를 찾고 그 key값들을 배열의 원소로 넣는다. 배열의 원소개수가 1개이면 해당 문자를 출력하고 아니라면 ?를 출력해준다. 3. 코드 1..
0. 제목 백준 11053 가장 긴 증가하는 부분 수열 BOJ 11053 가장 긴 증가하는 부분 수열 파이썬 11053 가장 긴 증가하는 부분 수열 Python 11053 가장 긴 증가하는 부분 수열 1. 문제 www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 2. 풀이 dp[i] : i 번째 원소까지의 가장 긴 증가하는 부분 수열의 길이 가장 먼저 dp의 원소들을 1로 초기화 시켜..
0. 제목 백준 12865 평범한 배낭 BOJ 12865 평범한 배낭 파이썬 12865 평범한 배낭 Python 12865 평범한 배낭 1. 문제 www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 2. 풀이 dp[i][j] = 배낭에 넣은 물품의 무게 합이 j일 때 얻을 수 있는 최대 가치 각 물품의 번호 i에 따라서 dp[i][j]를 갱신한다. 1부터 k까지 증가하는 변수 j가 입력된 무게보다..
0. 제목 백준 1325 효율적인 해킹 BOJ 1325 효율적인 해킹 파이썬 1325 효율적인 해킹 Python 1325 효율적인 해킹 1. 문제 www.acmicpc.net/problem/1325 max_value: result = [i] max_value = c elif c == max_value: result.append(i) max_value = c for e in result: print(e, end=" ")
0. 제목 백준 1012 유기농 배추 BOJ 1012 유기농 배추 파이썬 1012 유기농 배추 Python 1012 유기농 배추 1. 문제 www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 � www.acmicpc.net 2. 풀이 2차원 배열 형태의 문제에서 좌표 입력을 받을 때 (x, y)를 arr[y][x] 로 표현하는 것을 항상 생각하며 푼다. 파이썬에서 setrecursionlimit으로 재귀 허용 깊이를 늘려주지 않으면 런타임 오류가 뜨는 경우가 있어, 재귀 허용 깊이를 수동으로 늘려주는 ..
0. 제목 백준 2606 바이러스 BOJ 2606 바이러스 파이썬 2606 바이러스 Python 2606 바이러스 1. 문제 www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어�� www.acmicpc.net 2. 풀이 adj라는 2차원 배열 형태를 선언한 후, 각 점의 연결 상태를 표시한다. adj[2] = [1, 3, 4] 라면 2번에 1번, 3번, 4번이 연결되어 있다는 것이다. visited라는 1차원 배열을 선언한 후, 각 점에 대한 방문 여부를 표시한다. visited[3] = Tru..