본문 바로가기

분류 전체보기153

[Java] 인스턴스, 힙 메모리, 생성자, 정보 은닉 인스턴스: 클래스로부터 생성된 객체 힙(Heap) 메모리에 멤버 변수의 크기에 따라 메모리가 생성됨. 각각의 인스턴스는 별개의 메모리를 가진다. 자바에서는 garbege Collector가 메모리를 알아서 수거한다. 생성자(Constructor): 객체를 생성할 때 new키워드와 함께 호출됨 인스턴스를 초기화 하는 코드가 구현 됨 반환 값이 없음, 상속되지 않음, 생성자는 클래스 이름과 동일 기본 생성자(default constructor): 하나의 클래스에는 반드시 하나 이상의 생성자가 존재해야함. 만약 구현하지 않는다면 컴파일러가 생성자 코드를 넣어줌 기본 생성자는 매개변수가 없고,구현부가 없음 오버로딩: 같은 이름의 생성자, 메서드의 매개변수가 다른 경우 정보 은닉 (impormation hidin.. 2021. 12. 4.
[백준] 저울 2437번 (Python) 문제 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓을 수 있고, 다른 쪽에는 무게를 측정하려는 물건만 올려놓을 수 있다. 무게가 양의 정수인 N개의 저울추가 주어질 때, 이 추들을 사용하여 측정할 수 없는 양의 정수 무게 중 최솟값을 구하는 프로그램을 작성하시오. 예를 들어, 무게가 각각 3, 1, 6, 2, 7, 30, 1인 7개의 저울추가 주어졌을 때, 이 추들로 측정할 수 없는 양의 정수 무게 중 최솟값은 21이다. 입력 첫 째 줄에는 저울추의 개수를 나타내는 양의 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 둘째 줄에는 저울추의 무게를 나타내는.. 2021. 12. 4.
[백준] 플로이드 11404번 (Python) 문제 n(2 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b, 한 번 타는데 필요한 비용 c로 이루어져 있다. 시작 도시와 도착 도시가 같은 경우는 없다. 비용은 100,000보다 작거나 같은 .. 2021. 12. 4.
[백준] 호석이 두 마리 치킨 21278번 (Python) 문제 컴공 출신은 치킨집을 하게 되어있다. 현실을 부정하지 말고 받아들이면 마음이 편하다. 결국 호석이도 2050년에는 치킨집을 하고 있다. 치킨집 이름은 "호석이 두마리 치킨"이다. 이번에 키친 도시로 분점을 확보하게 된 호석이 두마리 치킨은 도시 안에 2개의 매장을 지으려고 한다. 도시는 N 개의 건물과 M 개의 도로로 이루어져 있다. 건물은 1번부터 N번의 번호를 가지고 있다. i 번째 도로는 서로 다른 두 건물 Ai 번과 Bi 번 사이를 1 시간에 양방향으로 이동할 수 있는 도로이다. 키친 도시에서 2개의 건물을 골라서 치킨집을 열려고 한다. 이 때 아무 곳이나 열 순 없어서 모든 건물에서의 접근성의 합을 최소화하려고 한다. 건물 X 의 접근성은 X 에서 가장 가까운 호석이 두마리 치킨집까지 왕복.. 2021. 12. 3.
[백준] 1075번 나누기 (python) 문제 두 정수 N과 F가 주어진다. 지민이는 정수 N의 가장 뒤 두 자리를 적절히 바꿔서 N을 F로 나누어 떨어지게 만들려고 한다. 만약 가능한 것이 여러 가지이면, 뒤 두 자리를 가능하면 작게 만들려고 한다. 예를 들어, N=275이고, F=5이면, 답은 00이다. 200이 5로 나누어 떨어지기 때문이다. N=1021이고, F=11이면, 정답은 01인데, 1001이 11로 나누어 떨어지기 때문이다. 입력 첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다. 출력 첫째 줄에 마지막 두 자리를 모두 출력한다. 한자리이면 앞에 0을 추가해서 두 자리로 만들어야 한다. 예제 입력 1 1000 3 .. 2021. 12. 3.
IntelliJ 단축키 익히기 (for mac) 프로젝트 창 포커스: command + 1 포커스 해제: esc 파일 미리보기: space 새파일 생성: 커서 이동 주석처리 자동 들여쓰기(자동 인덴트) 코드 사용처 찾기 최근 파일 열기: command + e Live Template: command + j (자동 완성 기능) psvm sout 퀵픽스: option + enter. (빠른 수정) 이슈별로 이동: F2, shift + F2 import 최적화: ctrl + option + o 터미널창: option + F12 구문 완성: shift + command + enter 파일 내에서 단어 대체하기: command + R 실행: ctrl + r 종료: command + F2 라인 복사 바로 붙여넣기: command + d 게터 세터 자동 완성: 에.. 2021. 12. 2.
2021 정보처리기사 (1회 필기 & 1~3회 실기) 후기 & 시험 공부 방법 전공자보단 비전공자의 공부 방법이 더 도움이 될 수 있겠지만 정보처리기사를 마치며 느낀 소감과 공부했던 방법을 기록하려 합니다. 정보처리기사는 2020년부터 NCS 표준에 맞춰 시험 과목이 필기, 실기 모두 대폭 개편되었습니다. 그 말인 즉? 풀어볼 모의고사가 몇 개 없다...ㅎ 저는 필기는 이기적, 실기는 수제비 교재를 사용했습니다. 📖 필기 시험 준비 2021년 정기기사 1회 필기시험 원서접수가 01.25~01.28일이라 대학교 3학년을 마치고 4학년을 기다리고 있는 겨울방학이라 지원 자격이 되는지 확인해보고 접수했습니다. 공부는 1주일을 목표로 잡았지 투자한 기간은 5일 이내였던 것 같습니다. 소프트웨어 설계/ 소프트웨어 개발/ 데이터베이스 구축/ 프로그래밍언어 활용/ 정보 시스템 구축 관리 5개 .. 2021. 12. 2.
2020 맥북 에어 M1 개발 기본 세팅하기 1) Rosetta 설치 softwareupdate --install-rosetta 맥에 Rosetta를 설치해야 하는 이유 https://support.apple.com/ko-kr/HT211861 Mac에 Rosetta를 설치해야 하는 경우 Rosetta 2를 사용하면 Intel 프로세서가 장착된 Mac용으로 제작된 앱을 Apple Silicon이 장착된 Mac에서 사용할 수 있습니다. support.apple.com 2) Homebrew설치 (Xcode 자동으로 설치 됨) M1용 brew 설치하기 https://brew.sh/index_ko Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 설치 후 $ brew --version 을.. 2021. 12. 1.
[python] 백준 14916번 (거스름돈) 문제 춘향이는 편의점 카운터에서 일한다. 손님이 2원짜리와 5원짜리로만 거스름돈을 달라고 한다. 2원짜리 동전과 5원짜리 동전은 무한정 많이 가지고 있다. 동전의 개수가 최소가 되도록 거슬러 주어야 한다. 거스름돈이 n인 경우, 최소 동전의 개수가 몇 개인지 알려주는 프로그램을 작성하시오. 예를 들어, 거스름돈이 15원이면 5원짜리 3개를, 거스름돈이 14원이면 5원짜리 2개와 2원짜리 2개로 총 4개를, 거스름돈이 13원이면 5원짜리 1개와 2원짜리 4개로 총 5개를 주어야 동전의 개수가 최소가 된다. 입력 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. 출력 거스름돈 동전의 최소 개수를 출력한다. 만약 거슬러 줄 수 없으면 -1을 출력한다. 예제 입력 1 13 예제 출력 1 5.. 2021. 12. 1.
[Python] 메소드 (Method)와 함수(Function) 차이점 함수(Function) 특정 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합이다. 독립적으로 존재 데이터가 반환될수도 반환되지 않을 수 있습니다. 메소드(Method) 객체(object), 구조체와 연관된 함수이다. 정의된 클래스의 참조에 따라 클래스를 호출해야 사용할 수 있다. 클래스 내에 정의된 함수 ※파이썬에서는 메소드를 호출할 때 해당 메소드의 인스턴스를 첫번째 argument로 사용한다. 반드시 self를 선언해주어야 함. self를 사용하여 인스턴스에 대한 정보를 호출할 수 있다. 2021. 11. 30.
[Python] 백준 19532번 (수학은 비대면 강의입니다) 문제 수현이는 4차 산업혁명 시대에 살고 있는 중학생이다. 코로나 19로 인해, 수현이는 버추얼 학교로 버추얼 출석해 버추얼 강의를 듣고 있다. 수현이의 버추얼 선생님은 문자가 2개인 연립방정식을 해결하는 방법에 대해 강의하고, 다음과 같은 문제를 숙제로 냈다. 다음 연립방정식에서 x와 y의 값을 계산하시오. ax+by=c dx+ey=f 4차 산업혁명 시대에 숙제나 하고 앉아있는 것보다 버추얼 친구들을 만나러 가는 게 더 가치있는 일이라고 생각했던 수현이는 이런 연립방정식을 풀 시간이 없었다. 다행히도, 버추얼 강의의 숙제 제출은 인터넷 창의 빈 칸에 수들을 입력하는 식이다. 각 칸에는-999 이상 999 이하의 정수만 입력할 수 있다. 수현이가 버추얼 친구들을 만나러 버추얼 세계로 떠날 수 있게 도와주.. 2021. 11. 30.
[Python] 백준 22864번 (피로도) 문제 하루에 한 시간 단위로 일을 하거나 일을 쉬어도 된다. 하루에 한 시간 일하면 피로도는A 만큼 쌓이고 일은 B 만큼 처리할 수 있다. 만약에 한 시간을 쉰다면 피로도는 C 만큼 줄어든다. 단, 피로도는 절대 0보다 작아질 수 없다. 당연히 일을 하지 않고 쉬었기 때문에 처리한 일은 없다. 피로도를 최대한 M 을 넘지 않게 일을 하려고 한다. M 를 넘기면 일하는데 번아웃이 와서 이미 했던 일들도 다 던져버리고 일을 그만두게 된다. 번아웃이 되지 않도록 일을 할때 하루에 최대 얼마나 일을 할 수 있는지 구해보자. 입력 첫 번째 줄에 A, B, C, M이 공백으로 구분되어 주어진다. (하루는 24시간이다.) 맨 처음 피로도는 0이다. 출력 하루에 번 아웃이 되지 않도록 일을 할 때 최대 얼마나 많은 일.. 2021. 11. 29.