전체 글

전체 글

    [백준] 2750 자바

    2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 백준의 브론즈2 문제입니다. 입력 받은 문자들을 정렬하여 그대로 출력하면 되는 문제입니다. 최대 데이터의 개수가 1000개로 그렇게 크지 않기 때문에 Scanner를 이용하여 입력을 받았고 Arrays.sort()를 이용하여 정렬하여 그대로 출력하였습니다. import java.util.*; public class Main { public static void main(String args[]){ Scanner sc = new Scanner(System.in); //데이..

    [백준] 1920 자바

    [백준] 1920 자바

    1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 백준의 실버4 문제입니다. 문제 내용은 배열 내에 특정 숫자가 존재하는지 안하는지 판단하는 아주 간단한 문제라 브론즈 문제라고 생각할 수 있지만 그렇지 않은 이유가 있었습니다. import java.util.*; import java.io.*; public class Main { static int N, M; public static void main(String args[]) throws IOException{ ..

    [디자인 패턴] 전략(Strategy) 패턴

    헤드 퍼스트 디자인 패턴 - 교보문고 14가지 GoF 필살 패턴! | 경력과 세대를 넘어 오랫동안 객체지향 개발자의 성장을 도와준 디자인 패턴 교과서의 화려한 귀환! 》 2005년부터 디자인 패턴 도서 분야 부동의 1위 》 디자인 패턴의 고 www.kyobobook.co.kr 전략(Strategy) 패턴이란? 전략 패턴이란 특정한 계열의 알고리즘들을 정의하고 각각을 캡슐화하여 사용할 수 있도록 만드는 패턴을 말합니다. 이를 활용하면 이 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있게 됩니다. 예제 다양한 오리를 등록해야하는 오리 시뮬레이션 게임의 오리 클래스 Duck을 예제로 예시를 적어보도록 하겠습니다. Duck.java public abstract class Duck { Fly..

    [Book] 실용주의 프로그래머 정리 - 05

    실용주의 프로그래머 - 교보문고 The Pragmatic Programmer숙련공에서 마스터로프로그래밍은 대체로 머리로 하는 일이지만 한편으로는 몸에 새겨져야 하고 때로는 그 이상의 통찰을 발휘해야 하는 상황에 맞닥뜨리게 되는 복합적인 www.kyobobook.co.kr 구부러지거나 부러지거나 26. 결합도 줄이기와 디미터 법칙 이전 글에서 '부끄럼 타는' 코드를 작성하는 것이 이롭다고 설명했습니다. 이때 '부끄럼 타는' 이란 자신의 모든 것을 드러내지 않고, 너무 많은 사람과 상호작용을 하지 않는다는 두 가지의 의미를 가지고 있습니다. 코딩을 하며 어떤 모듈들을 만들 때 각 모듈 간의 상호작용을 제한해야 합니다. 그러면 한 모듈이 변경되거나 교체된다 하더라도 다른 모듈들은 변경 없이 수행될 수 있을 것..

    [Book] 실용주의 프로그래머 정리 - 04

    실용주의 프로그래머 - 교보문고 The Pragmatic Programmer숙련공에서 마스터로프로그래밍은 대체로 머리로 하는 일이지만 한편으로는 몸에 새겨져야 하고 때로는 그 이상의 통찰을 발휘해야 하는 상황에 맞닥뜨리게 되는 복합적인 www.kyobobook.co.kr 실용주의 편집증 완벽한 소프트웨어는 만들 수 없다. 위의 말은 사실입니다. 완벽한 소프트웨어는 존재하지 않기 때문입니다. 그리고 이것을 기정 사실로 받아들이지 않는다면, 불가능한 꿈을 뒤쫓으며 시간과 노력을 낭비하게 될 것입니다. 그래서 우리는 방어적으로 코딩해야합니다. 코딩을 하는 도중 조금이라도 의심가는 부분이 있다면 주어진 모든 정보를 확인해야 합니다. 21. 계약에 의한 설계 계약에 의한 설계란 단순하지만 강력한 기법으로, 프로그..

    [Book] 실용주의 프로그래머 정리 - 03

    실용주의 프로그래머 - 교보문고 The Pragmatic Programmer숙련공에서 마스터로프로그래밍은 대체로 머리로 하는 일이지만 한편으로는 몸에 새겨져야 하고 때로는 그 이상의 통찰을 발휘해야 하는 상황에 맞닥뜨리게 되는 복합적인 www.kyobobook.co.kr 3장 기본적인 도구 14. 일반 텍스트의 힘 일반 텍스트는 사람이 직접 읽고 이해할 수 있는 형태의 인쇄가능한 문자로 이루어진 텍스트를 말합니다. 예를 들면 'Field19=773h26saa' 에서 733h26saa를 보고 무슨 의미인지 떠올릴 수 있는 사람은 없을 것 입니다. 그렇기 때문에 'UserId=haha123' 과 같이 인간이 이해할 수 있는 텍스트로 만드는 것이 더 나은 선택입니다. 물론 일반 텍스트로 작성하는 것은 압축된 ..

    [Book] 실용주의 프로그래머 정리 - 02

    실용주의 프로그래머 - 교보문고 The Pragmatic Programmer숙련공에서 마스터로프로그래밍은 대체로 머리로 하는 일이지만 한편으로는 몸에 새겨져야 하고 때로는 그 이상의 통찰을 발휘해야 하는 상황에 맞닥뜨리게 되는 복합적인 www.kyobobook.co.kr 2장 실용주의 접근법 7. 중복의 해악 이번에는 DRY 원칙에 대하여 설명합니다. DRY란 'Don't Repeat Yourself' 반복하지 말아라 라는 뜻입니다. 개발자들은 개발의 시작부터 끝까지 항상 유지보수의 과정에 놓여 있다고 해도 과언이 아닙니다. 그리고 이 유지보수를 피곤하게 만드는 것 중의 하나가 중복된 코드입니다. 중복된 코드가 많으면 많을수록 해당 부분에 대한 수정은 피로해질 것이기 때문이죠. 이 중복이 생기는 이유는 ..

    [Book] 실용주의 프로그래머 정리 - 01

    구매한 지 조금 시간이 지난 책을 요즘 읽고 있습니다. 실용주의 프로그래머라는 책입니다. 이전에도 읽어보려 했는데 읽을수록 어렵다는 느낌이 들어 읽는 것을 멈추었습니다. 하지만 지금은 읽어도 좋을 것 같다는 느낌이 들어 읽기 시작했습니다. 책을 읽으며 내용을 복습할 겸 정리해보고자 합니다. 실용주의 프로그래머 - 교보문고 The Pragmatic Programmer숙련공에서 마스터로프로그래밍은 대체로 머리로 하는 일이지만 한편으로는 몸에 새겨져야 하고 때로는 그 이상의 통찰을 발휘해야 하는 상황에 맞닥뜨리게 되는 복합적인 www.kyobobook.co.kr 0장 서문 서문에서도 좋은 부분이 있었습니다. 실용주의 프로그래머가 되려면 자신의 기술에 관심과 애정을 가지고 자신이 무슨 일을 하고 있는지 생각을 ..