programmers 프린터 오늘도 스택 카테고리에 있는 문제를 풀었습니다. 프린터 문제인데요. 이 문제를 풀면서 어려웠던 점이나 고민되었던 점을 간략하게 정리하겠습니다. (처음 위치, 바뀐 위치, 우선순위) 이렇게 3가지 정보를 어떻게 자료구조에 담을 것인가? 이 부분이 이 문제에서 가장 고민되었던 부분입니다. 기본적으로 프린터의 구조상 Queue형태로 문제를 풀어나가야 한다는 것은 알겠지만 여기에 어떤 자료형을 담을지, 그리고 answer로 제출할 답들은 어디에 넣을지가 고민되었습니다. 결국 Job이라는 내부 클래스를 만들어 자료형으로 만들어야 겠다는 생각이 들었습니다. 전에 C++할때는 Pair라는 자료구조가 있어서 동시에 2개 정보를 담을 수 있었지만 자바에선 이런게 없었기 때문입니다. class..
Today's Dev Notes(2018-10-16) 안녕하세요. Brad입니다. '좌표계산기' 문제도 막바지에 이르렀네요. 그럼 오늘도 step을 진행하면서 생각하고 배운 것들을 정리해보겠습니다. step6 에서 기존 step과 비교해서 별 요구사항이 없었습니다. 이미 인터페이스를 구현해놓은 상태라 요구사항을 이미 충족해 있었기 때문입니다. 그래서 기존 코드를 리팩토링할 좋은 기회라 생각했습니다. 팩토리 생성 팩토리는 뭘까? 팩토리는 의미 그대로 '공장'이라는 뜻입니다. 이때 만들어주는 것은 '객체'인데요. 팩터리 메서드는 객체를 생성하여 반환하는 메서드를 말합니다. 여기에 '패턴'이 붙으면 하위 클래스에서 팩터리 메서드를 Override해서 객체를 반환하는 것을 말합니다. 예를들어 인터페이스를 하위 ..
Today's Dev Notes(2018-10-15) 안녕하세요. Brad입니다. 오늘은 좌표계산기 step5를 진행하였습니다. 진행을 하면서 고민했던 부분, 그것을 해결하기 위한 노력. 그리고 피드백 받은 부분에 대해 정리하였습니다. 고민했던 부분 사용자가 입력한 점 중에서 같은 위치의 점(Point)를 어떻게, 어디에서 체크할까? equals(), hashCode() 미리 정의해두고 Set 을 이용하여 들어오는 Point개수와 Set안에 있는 Point개수 비교하여 다르면 오류 발생! 오류 메시지는 Domain에 있는 것이 좋을까? View에 있는 것이 좋을까? 로직과 관련되어 있기 때문에 Domain에 있는게 적합할 것 같기도 하고, 메시지만 전달한다는 점에서 View에 있어야할 것 같기도 하고....
인터페이스(Interface) 오늘 수업시간에는 인터페이스에 대해서 다루었습니다. 인상 깊었던 내용, 그리고 기억해둘 내용 중점으로 정리하겠습니다. 인터페이스가 뭘까요? 사전적 의미로 아래와 같은 뜻이 있습니다. 서로 다른 두 시스템, 장치, 소프트웨어 따위를 서로 이어 주는 부분. 또는 그런 접속 장치. 실생활에서 찾아볼 수 있는 흔한 예로 콘센트가 있는데요. 콘센트는 서로 각기 다른 것(전기와 전자기기) 사이에서 연결하게 해주죠. 또 자바에서도 찾아볼 수 있는데요. Connection.java라는 클래스입니다. 이 클래스는 DB와 프로그램 사이에서 서로를 연결해주는 역할을 합니다. 왜냐하면 수많은 DB의 종류가 있고 수많은 프로그램이 있는데 이 각기 다른 연결을 따로따로 Custom화하면 너무나 많은..
programmers 쇠막대기 이 문제는 수업시간에 다루었던 내용입니다. Stack 자료구조를 사용하면 쉬운 문제인데요. 우선 코드부터 보겠습니다. import java.util.Stack; class Solution { public int solution(String arrangement) { int answer = 0; Stack arrageStack = new Stack(); String[] arragements = arrangement.split(""); for(int i = 0; i < arragements.length; i++) { if(arragements[i].equals("(")) { arrageStack.push(arragements[i]); answer++; } if(arragemen..
스프링 입문을 위한 자바 객체지향의 원리와 이해2 어제 2장에서 T메모리에 대한 설명과 간단한 코드에서 T메모리에 어떻게 할당되는지 배웠는데요. 오늘은 쪼~금 더 나아가 코드가 좀 더 많아지고 분기가 일어났을 때 어떤 변화가 발생하는지부터 시작해보도록 하겠습니다. 02. 자바와 절차적/구조적 프로그래밍 이번에 살펴볼 클래스는 Start3이구요. 코드는 아래와 같습니다. public class Start3 { public static void main(String[] args) { int i = 10; int k = 20; if (i == 10) { int m = k + 5; k = m; } else { int p = k + 10; k = p; } System.out.println("completed");..