본문 바로가기

Computer Science19

[Java] 자바 디자인패턴 #2 - Observer Pattern 2. Observer Pattern : 특정 데이터를 여러종류의 객체에서 참조하고자 할때, 특정 데이터가 갱신된 것을 문제없이 알림받고 사용할 수 있는 디자인. 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고, 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의한다. >> 갱신된 정보를 효과적으로 분산 처리하는데 유용하다. 예시) WeatherData 1. Observer.java 12345package chap2;public interface Observer { public void update(float temp, float humid, float pressure);} Colored by Color Scriptercs 2. Subject.java 1.. 2016. 6. 27.
[Java] 자바 디자인패턴#1 - Strategy Pattern 1. Strategy Pattern 직역하면 전략적 패턴으로, 자바 베이직 강의에서 배우고 넘어가는 Interface의 상속,확장성을 이용한 패턴이다. 객체지향 언어의 특성인 상속을 활용하여 코드를 유연하게 관리할 수 있다. Interface 강의 시에 언급되는 대표적인 예로 스타크래프트가 있다. public class Unit {private Weapon weapon;public void setWeapon(Weapon weapon) {this.weapon = weapon;}public void attack(){if(weapon == null){System.out.println("No Weapon!");}else {weapon.attack();}}} 2016. 6. 27.
[Baekjoon] 하노이 탑 이동 순서 문제 : https://www.acmicpc.net/problem/11729 설명 : 알고리즘 강의에서 재귀함수에 대한 부분에서 항상 언급되는 하노이타워 문제이다.N개의 원판을 A에서 C로 옮길 때, 1. N-1개의 원판을 A에서 B로 옮긴후,2. A에 남아있는 가장 큰 원반을 C로 옮긴다. 3. 다시 N-1개의 원판을 B에서 A로 옮기면 된다. 코드 :1234567891011121314151617181920212223242526272829303132333435363738 package feb12.hanoi; import java.util.Scanner; public class Main { public void hanoi(int i, int start, int mid, int end){ if(i == 1.. 2016. 2. 22.
[Baekjoon] 타일채우기 문제 : https://www.acmicpc.net/problem/2133설명 : 3*N의 타일을 2*1, 1*2 사이즈의 타일을 가지고 채우는 경우의 수를 구하는 문제이다. 풀이 : Top-down 방식으로 해결하면 될 것 같았다. 그러나 쪼개고 쪼개도 '실패'로 떴고...생각하지 못했던 부분들까지 쪼개야 하였다. 첨부한 그림파일로 이해하면 쉬울 것이다. 코드 :12345678910111213141516171819202122232425262728293031323334353637383940414243444546 package feb12.tile; import java.util.Scanner; public class Main { public static int getTile_2(int n, int[] ar.. 2016. 2. 22.