본문 바로가기

전체 글100

백준 - [BOJ 2109] 순회강연 백준 온라인 져지(BOJ)에서 제공 되는 2019번 문제는 그리디(Greedy, 탐욕법) 유형이다. 해당 문제는 code.plus 중급 1/3, 그리디 알고리즘에 게시된 문제이다. 문제 한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다. 각 대학에서 제시하는 d와 p값은 서로 다를 수도 있다. 이 학자는 이를 바탕으로, 가장 많은 돈을 벌 수 있도록 순회강연을 하려 한다. 강연의 특성상, 이 학자는 하루에 최대 한 곳에서만 강연을 할 수 있다. 예를 들어 네 대학에서 제시한 p값이 각각 50, 10, 20, 30이고, d값이 .. 2024. 2. 29.
클라이언트-서버 시스템 (Client-Server System) 클라이언트와 서버란? 클라이언트란 서비스를 제공받는 사람들을 의미한다. 서버란 클라이언트에게 서비스를 제공하는 사람들을 의미한다. 보통 웹과 앱, 게임이 있는데 앱과 게임을 생각해보면 다운로드를 진행하고 웹은 따로 다운로드를 하지 않는다. 그 이유를 알기 위해서는 먼저 OS의 개념과 백엔드 서버와 프론트엔드 서버에 대해서 알고 있어야한다. 프론트엔드 서버 웹을 생각해보자. 우리는 URL(Uniform Resource Locator, 일관성있는 자원의 위치)을 통해 웹 페이지를 이용한다. 여기서 웹 페이지는 html로 구성되어있고 html 코드 블럭과 js, css로 표현되어있다. 즉 특정 html은 Resource(자원)이 되고 우리는 이 위치로 접속해 자원에 대해 요청한다. 이 때, URL은 실제로 i.. 2024. 2. 26.
모듈(Module), 컴포넌트(Component), 컨테이너(Container) 컴포넌트와 모듈은 정보처리기사 자격증에서도 나오는 내용인데 이 두 용어의 차이가 모호했다. 모듈 (Module) 이란? 모듈은 생각보다 쉽게 생각할 수 있다. 우리가 프로그램을 만들 때, 하나의 기능을 만들거나 하나의 클래스를 만들게 된다. 이것을 모듈이라고 한다. 생각보다 너무 간단하게 작성했는데 이것을 실제 예로 들어보겠다. 계산기를 작성해보자. 우리는 더하기 연산을 작성한다. int sum(a, b) { return a + b; } 이제 이것은 하나의 모듈이다. 그 외 -, *, / 연산도 모듈이라고 할 수 있다. 그럼 우리는 의문을 가질 수 있다. 모듈은 함수 또는 메소드인가요? 정답은 아니오다. public class Calculator { public int plus(); public int .. 2024. 2. 24.
4. 입/출력 (Input/Output, I/O) 프로젝트 진행 중이라 글을 작성하지 못하고 있었네요. 다시 블로그 글 열심히 작성해보겠습니다. 앞서 확인해보니 입/출력에 대해 빼뜨려먹어서 지금 작성합니다. 입/출력이란? 자바에서 입/출력이란 우리가 알고 있는 느낌 그대로. 우리가 지금 포스트 글 또는 댓글과 같이 텍스트 박스에 글을 작성하면 화면에 보이는 것. 키보드를 이용해서 글을 작성하는 행위가 입력이고 작성된 글이 화면에 보이는 것이 출력이다. 자바에서 출력하는 방법 public class Main { public static void main(String[] args){ System.out.println("Hello World!"); } } 기본적으로 자바를 시작하게 되면 Intelli J와 Eclipse같은 IDE에서 제공하는 문법이다. 자바.. 2024. 2. 24.
정보처리기사 필기 합격 하루에 1시간 조금 덜 투자해서 6일 공부하면 합격 하는 난이도이다. 그냥 기출문제만 5번만 풀어도 합격할 것 같네요... 연달아 공부한 것도 아니고 기간 텀을 두고 총합 6시간도 채 공부안했는데 합격했습니다. 다들 마음 편하게 시험보셔도 되겠어요 ... 2024. 2. 22.
정보처리기사 필기 - 2021년 08월 14일 기출문제 바쁜 스케줄로 오랜만에 며칠만에 문제를 풀어봤다.. 결과는 합격이긴한데 하루밖에 제대로 공부하지 못했는데 이대로 시험을 볼까.. 고민이 된다. 그냥 남은 2022년 문제와 시나공에서 제공하는 기출문제만 더 풀어보고 자격증 시험을 응시할 생각이다. 앞으로 세 네번의 포스트를 더 작성하고 시험을 보러갈 것 같은데 ㅠ 벌써 일주일밖에 안남았다니.. 하지만 자격증은 언제든 기회가 있으니 지금 당장에만 할 수 있는 프로젝트에 더 집중하려고 한다. 졸업까지 1년밖에 남지 않아서 걱정이긴한데,, 지금까지 모의고사 성적들이 괜찮으니 합격을 기대하고 대충해야겠음 ㅠㅠ 그래도 시간이 되면 노션에는 계속해서 정리해 나갈 생각 노션 정리 URL https://www.notion.so/24jihwan/2021-08-14-d96.. 2024. 2. 12.
6. STL 사용하기 - std::list STL 이란? C++ 에서 제공하는 STandard Library를 STL이라고 한다. 자바에서는 자바에서 제공하는 API라고 볼 수 있다. 지금까지 list에 대해 직접 설계해보았고 list에 대한 설명이 충분했다. 이번에는 STL을 직접 사용하면서 어떤 기능이 있고 언제, 어떻게 사용할 지 생각해보도록 하자. ※ 시간이 오래 걸리는 Method는 제외한다. (효율적 사용) std::list Construct Method Description (constuctor) 리스트 생성시 입력 값 operator= = 기호에 대한 연산 방법 Iterators Method Description begin() 리스트 Head에 속한 데이터 위치 end() 리스트 마지막 위치 != Tail, null 값 rbegin.. 2024. 2. 11.
5. 원형 연결 리스트 (Circular Linked List) 원형 연결 리스트란? 단순 연결 리스트에서 끝이 처음과 연결되어 있는 형태를 원형 연결 리스트라고 합니다. STL에도 구현되어있지 않고 아직 학생 수준이지만, 실제로 사용되는 경우도 본 적이 많이 없습니다. 그래서 단순하게만 만들어보도록 할 것인데, 이중 연결 리스트 형태로 만들려고 합니다. (실제로 순환적인 요소는 큐 또는 재귀를 많이 사용하는듯) 원형 연결 리스트(Circular Linked List) 구현하기 많은 기능을 추가하지는 않겠습니다. 노드 #pragma once template class Node { public: Node(T data); T getData() const; Node* getNext() const; Node* getPrev() const; void setNext(Node* .. 2024. 2. 10.
9. 반복문 - while 문, do while 문 while 문 이란? while문도 for문과 마찬가지로 ~동안 이라는 뜻을 가지고 있는 반복문입니다. 이전 포스트에서 for문에서 ~동안을 의미하는 곳이 조건식이라고 설명했습니다. while문도 마찬가지로 '조건식' 동안 반복을 하겠다는 의미가 됩니다. 조금 더 자세히 알기 위해서 for문의 수행 과정을 복습해보겠습니다. 첫 번째 수행 (초기값), 먼저, '초기값'에 들어가는 내용은 0개 이상 작성하면 됩니다. 초기값을 설정하지 않아도 수행되는 것이죠. 저는 3개의 변수 i, j, cnt를 초기값으로 특정 값을 할당 했습니다. 두 번째 수행 (조건식), 조건동안 for문을 수행할 수 있는지 확인합니다. 조건은 i < j 이므로, (i : 10) < (j : 20) 를 만족합니다. 두 번째 수행에서 조건.. 2024. 2. 10.