본문 바로가기

전체 글1068

[자바] 백준 10864 - 친구 (java) 문제 : boj10864 필요 알고리즘 개념 구현 별다른 알고리즘 지식 없이 문제에 제시된 대로 구현만 할 줄 알면 풀 수 있다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다. 풀이 1. N명의 학생에 대해 N+1크기의 배열 cnt[N+1]을 만들어보자. cnt[x]는 x번 학생의 친구 수를 나타낸다. 2. M개의 친구 관계 A B를 입력받는다. 그리고 cnt[A]++; cnt[B]++; 를 해준다. (A와 B가 친구면, B와 A.. 2022. 11. 25.
[오브젝트] 3장. 역할, 책임, 협력 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. CHAPTER 03. 역할, 책임, 협력 [ 객체지향 패러다임의 관점에서 핵심 ] ⚈ 클래스, 상속, 지연 바인딩이 중요하지 않은 것은 아니지만, 구현 측면에 치우쳐 있으므로 객체지향 패러다임의 본질과는 거리가 멀다. 클래스와 상속은 객체들의 책임과 협력이 어느 정도 자리를 잡은 후에 사용할 수 있는 구현 메커니즘일 뿐이다. ⚈ 객체지향 패러다임의 핵심은 역할(role), 책임(responsibility), 협력(collabor.. 2022. 11. 24.
[오브젝트] 2장. 객체지향 프로그래밍 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. CHAPTER 02. 객체지향 프로그래밍 01 영화 예매 시스템 - 코드 (github) 02 객체지향 프로그래밍을 향해 - 협력, 객체, 클래스 대부분의 사람들은 클래스(class)를 경험한 후에 클래스에 어떤 속성과 메서드가 필요한지 고민한다. 진정한 객체지향 패러다임으로의 전환은 클래스가 아닌 객체에 초점을 맞춰야 얻을 수 있다. 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야 한다. 협.. 2022. 11. 23.
[CS 전공지식 노트] 2장. 네트워크 스터디 메인 이 스터디의 경우 이미 책의 내용이 매우 축약된 내용이므로 책 내용 정리는 크게 의미가 없다고 생각합니다. 따라서 스터디 정리는 추가로 설명한 부분에 대해 작성했습니다. [ 2장 - 네트워크 ] - 68page : 네트워크 얘기이니, 전반적으로 네트워크에 관한 얘기 TCP/IP 컴퓨터간의 통신을 위한 통신규약 미국방위통신청에서 컴퓨터간의 통신을 위해서 TCP/IP를 사용하도록 한 것이 그 시초 HW, OS, 접속매체에 관계없이 동작할수 있다는 개방성때문에 인터넷 통신을 위한 핵심으로 선택됨. TCP 클라이언트와 서버간에 데이터를 신뢰성있게 전달하기 위해 만들어진 프로토콜. 3way handshake 같이 IP 네트워크 상에서 컴퓨터의 고유한 주소. 인터넷에 접속할 때 컴퓨터 각각에 부여받음... 2022. 11. 21.
[roadmap.sh] Backend 1주차 정리 스터디 메인 페이지 목차 완벽한 정리가 목적이 아니고, 로드맵을 보면서 기본 개념을 알고 차후 파고들어서 공부하기 위한 사전 준비 과정인 스터디이다. 따라서 이하 정리한 내용이 부실할 수 있다. Internet How does the internet work? The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols. TCP/IP 컴퓨터간의 통신을 위한 통신규약 미국방위통신청에서 컴퓨터간의 통신을 위해서 TCP/IP를 사용하도록 한 것이 그 시초 HW, OS, 접속매체에 관계없이 동작할수 있다는 개방성때문에 인터넷 통신을 위한 핵심으로.. 2022. 11. 19.
[자바] 백준 2835 - 인기도 조사(java) 문제 : boj2835 필요 알고리즘 개념 누적합 알고리즘 약간의 배열 테크닉을 활용하면 누적합 알고리즘 만으로 풀 수 있다. 세그먼트 트리 lazy propagation 또는 range update - range query 펜윅 트리 누적합으로 풀려면 아이디어가 필요하다. 일반적으로는 세그먼트 트리 lazy propagation 혹은 펜윅 트리 응용을 통해 풀게 된다. 이하 풀이는 누적합을 통한 풀이이다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도.. 2022. 11. 16.
[오브젝트] 1장. 객체, 설계 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기로 책에 나오지 않는 내용입니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. 들어가며 - 프로그래밍 패러다임 01 패러다임의 시대 - 현대인들에게 패러다임 → 한 시대의 사회 전체가 공유하는 이론이나 방법, 문제의식 등의 체계 (e.g. 천동설 → 지동설 로의 패러다임의 전환) - 이 책에서 얘기하는 패러다임 전환 - 절차형 패러다임에서 절차형 패러다임으로의 변화 02 프로그래밍 패러다임 - ☆P.S 좋아하는 알고리즘 중 하나인 플로이드 와샬 알고리즘의 그 플로이드 와샬이 프로그래밍 패러다임 용어 처음 사용해서 신기했음! - 프로그래밍 패러다임 - 특정 시대의 어느 성숙한 개발자 공동체에 의해 수용된 프로그래밍 방법과.. 2022. 11. 16.
벡터의 외적과 CCW (Counter ClockWise) 목차 여러 글을 보면서 제가 이해할 수 있는 수준까지 공부하고 정리한 내용입니다. 따라서 수학을 파볼려는 분 보다는, 기하 알고리즘 풀이를 위한 기본적인 이해용으로 보시는게 맞을 것 같습니다. 제가 수학을 매우 못하는 편이라 제가 이해할 수준으로 정리한 내용은 아마도 쉽게 정리된 내용일 것 같습니다. 공부 이유는 백준(솔브닥) 그래프가 안이뻐서 입니다. 틀린 내용 있을 시 댓글로 알려주세요. 벡터의 외적 outer product, cross product, vector product, 벡터곱. 기하학의 사칙연산이라 불리는 CCW를 설명하기 위한 사전 지식 입니다. 이하 bold 처리된 대문자 $\textbf{A}, \textbf{B}$는 벡터를 뜻합니다. 3차원 공간에 대해 정의된 벡터를 이용한 특정 연.. 2022. 11. 15.
[CS 전공지식 노트] 1장. 디자인패턴과 프로그래밍 패러다임 스터디 메인 페이지 이 스터디의 경우 이미 책의 내용이 매우 축약된 내용이므로 책 내용 정리는 크게 의미가 없다고 생각합니다. 따라서 스터디 정리는 추가로 설명한 부분에 대해 작성했습니다. - 16 page (디자인 패턴 설명 시작하는 부분) 디자인패턴, 패러다임 모두 일종의 도구로 여러 사람의 공통된 문제 해결 방법을 정형화해둔 것. 정답이 없고 적절히 선택해 사용하면 된다. - 17 page (싱글톤 패턴 설명 시작하는 부분) "하나의 클래스에 오직 하나의 인스턴스만"이 애매할 수 있는데, 싱글톤 패턴을 적용한 자바 Class에 대해 new를 통한 인스터스화(=객체)가 프로그램 내에서 단 한 번만 일어난다고 이해하면 된다. - 20 page (싱글톤 패턴을 구현한 자바 코드) 자바 싱글톤 패턴의 변화.. 2022. 11. 15.
자바 싱글톤 패턴의 변화 (다양한 싱글톤 패턴 구현 방법) 목차 싱글톤 패턴은 어떠한 클래스에 대한 객체(=인스턴스)를 해당 프로그램에서 단 하나만 가지도록 강제하는 구현 패턴 입니다. 단 하나만 있지 않으면 문제가 생기거나, 하나만 있어도 문제가 없을 때 사용하면 됩니다. 자바로 싱글톤 패턴을 구현하는 방법들을 점차 이전의 단점을 해결하면서 변화하는 코드들로 짧게 얘기해보려 합니다. 주관적 견해도 들어가 있으므로 정답은 아닙니다. 1. 가장 기초가 되는 구현 방법 class ConnectionManager { private final static ConnectionManager instance = new ConnectionManager(); private ConnectionManager() {} public static ConnectionManager getI.. 2022. 11. 15.