전체 글 70

[JAVA기초] 객체와 클래스의 개념

객체지향 프로그래밍(OOP) 이란?소프트웨어 개발 패러다임 중 하나로 프로그램을 여러 개의 객체들로 나누어 설계하고 개발하는 방법론이다.객체란 데이터와 이를 처리하는 함수를 하나로 묶은 개념으로, 현실 세계의 사물이나 개념을 컴퓨터 프로그램에서 표현하는 데 사용된다.   속성 (Attributes): 객체가 가지는 데이터 또는 상태ex) 자동차 객체라면 속성은 색상, 브랜드, 속도 가 될 수 있다.   메서드 (Methods): 객체가 할 수 있는 행동 또는 동작ex) 자동차 객체라면 메서드는 출발하기, 멈추기, 속도 변경하기 등이 될 수 있다.   속성과 메서드를 하나로 묶는다는 것은?예를 들면 자동차 객체의 속성은 빨간색, 도요타 브랜드, 현재 속도 50km 라고 가정할 수 있고,그 자동차의 가속 메..

JAVA/기초공부 2024.09.25

[Python] 백준 13975 파일 합치기 3

문제소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본이 들어있는 한 개의 파일을 만든다. 이 과정에서 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 파일을 합쳐나가고, 최종적으로는 하나의 파일로 합친다. 두 개의 파일을 합칠 때 필요한 비용(시간 등)이 두 파일 크기의 합이라고 가정할 때, 최종적인 한 개의 파일을 완성하는데 필요한 비용의 총 합을 계산하시오.예를 들어, C1, C2, C3, C4가 네 개의 장을 수록하고 있는 파일이고, 파일 크기가 각각 40, 30, 30, 50 이라고 하자. 이 파일..

백준풀이 2024.09.24

[Python] 백준 1202 보석 도둑

문제세계적인 도둑 상덕이는 보석점을 털기로 결심했다.상덕이가 털 보석점에는 보석이 총 N개 있다. 각 보석은 무게 Mi와 가격 Vi를 가지고 있다. 상덕이는 가방을 K개 가지고 있고, 각 가방에 담을 수 있는 최대 무게는 Ci이다. 가방에는 최대 한 개의 보석만 넣을 수 있다.상덕이가 훔칠 수 있는 보석의 최대 가격을 구하는 프로그램을 작성하시오.https://www.acmicpc.net/problem/1202    난이도골드2    내 코드import sysimport queuen, k = map(int,sys.stdin.readline().split())gem = []bag = []answer = 0priority_queue = queue.PriorityQueue() for _ in range(n) ..

백준풀이 2024.09.24

[Python] 백준 9466 텀 프로젝트

문제이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 수도 있다. 프로젝트 팀을 구성하기 위해, 모든 학생들은 프로젝트를 함께하고 싶은 학생을 선택해야 한다. (단, 단 한 명만 선택할 수 있다.) 혼자 하고 싶어하는 학생은 자기 자신을 선택하는 것도 가능하다.학생들이(s1, s2, ..., sr)이라 할 때, r=1이고 s1이 s1을 선택하는 경우나, s1이 s2를 선택하고, s2가 s3를 선택하고,..., sr-1이 sr을 선택하고, sr이 s1을 선택하는 경우에만 한 팀이 될 수 있다.예를 들어, 한 반에 7명의 학생이 있다고 하자. 학생들을 1번부터 7번으로 표..

백준풀이 2024.09.24

[Python] 백준 15681 트리와 쿼리

문제간선에 가중치와 방향성이 없는 임의의 루트 있는 트리가 주어졌을 때, 아래의 쿼리에 답해보도록 하자.정점 U를 루트로 하는 서브트리에 속한 정점의 수를 출력한다.만약 이 문제를 해결하는 데에 어려움이 있다면, 하단의 힌트에 첨부한 문서를 참고하자.https://www.acmicpc.net/problem/15681   난이도골드 5   내 코드import syssys.setrecursionlimit(10**6)def DFS(currentNode) : visit[currentNode] = True for nextNode in graph[currentNode] : if not visit[nextNode] : answer[currentNode] += DFS(nex..

백준풀이 2024.09.22

[CS] 개발자 기술 면접 대비하기

컴퓨터 과학은 키워드 암기 과목이 아니다.컴퓨터 과학적 지식의 학습 목적은 단순 키워드 암기가 아니라 이해와 적용 이다. 실무를 위한 개발의 재료를 갖기 위한 과정이다.   대다수 직군에서 공통적으로 출제되는 지식컴퓨터 구조운영체제자료구조네트워크데이터베이스 개별 직군 및 기업에 따라 달라지는 개별 지식프로그래밍 언어프레임워크/라이브러리개발도구이력서 및 직무 전문성     공통 지식에 대해 필요한 학습내용 컴퓨터 구조데이터와 명령어(컴퓨터가 이해하는 정보)에 대해 알아보기컴퓨터의 핵심 부품(CPU, 메모리, 보조기억장치, 입출력장치)의 역할과 작동 방법에 대해 알아보기 + 캐시 데이터운영체제 : 컴퓨터를 작동시키는 가장 중요한 프로그램커널과 시스템 콜이 무엇인지에 대한 학습프로세스와 스레드에 대한 이해운..

CS공부 2024.09.21

[Python] 백준 1766 문제집

문제민오는 1번부터 N번까지 총 N개의 문제로 되어 있는 문제집을 풀려고 한다. 문제는 난이도 순서로 출제되어 있다. 즉 1번 문제가 가장 쉬운 문제이고 N번 문제가 가장 어려운 문제가 된다.어떤 문제부터 풀까 고민하면서 문제를 훑어보던 민오는, 몇몇 문제들 사이에는 '먼저 푸는 것이 좋은 문제'가 있다는 것을 알게 되었다. 예를 들어 1번 문제를 풀고 나면 4번 문제가 쉽게 풀린다거나 하는 식이다. 민오는 다음의 세 가지 조건에 따라 문제를 풀 순서를 정하기로 하였다.N개의 문제는 모두 풀어야 한다.먼저 푸는 것이 좋은 문제가 있는 문제는, 먼저 푸는 것이 좋은 문제를 반드시 먼저 풀어야 한다.가능하면 쉬운 문제부터 풀어야 한다.예를 들어서 네 개의 문제가 있다고 하자. 4번 문제는 2번 문제보다 먼저..

백준풀이 2024.09.21

[Python] 백준 1516 게임 개발

문제숌 회사에서 이번에 새로운 전략 시뮬레이션 게임 세준 크래프트를 개발하기로 하였다. 핵심적인 부분은 개발이 끝난 상태고, 종족별 균형과 전체 게임 시간 등을 조절하는 부분만 남아 있었다.게임 플레이에 들어가는 시간은 상황에 따라 다를 수 있기 때문에, 모든 건물을 짓는데 걸리는 최소의 시간을 이용하여 근사하기로 하였다. 물론, 어떤 건물을 짓기 위해서 다른 건물을 먼저 지어야 할 수도 있기 때문에 문제가 단순하지만은 않을 수도 있다. 예를 들면 스타크래프트에서 벙커를 짓기 위해서는 배럭을 먼저 지어야 하기 때문에, 배럭을 먼저 지은 뒤 벙커를 지어야 한다. 여러 개의 건물을 동시에 지을 수 있다.편의상 자원은 무한히 많이 가지고 있고, 건물을 짓는 명령을 내리기까지는 시간이 걸리지 않는다고 가정하자...

백준풀이 2024.09.20

[JAVA기초] 연산자 - 할당, 산술, 단항, 관계, 논리, 조건, 복합할당

연산자: 수식과 결합하여 필요한 연산 동작을 수행하도록 하는 기호  할당 연산자기호 : =의미 : 우변의 값을 계산하여 좌변의 변수에 할당* 좌변에는 반드시 변수만 와야한다.int kk, tt, pp; // 정수형 변수 선언kk = 456785; // kk 에 값 할당tt = pp = kk ; // kk 에 저장된 값을 pp와 tt에 할당     산술 연산자: 산술 연산을 수행하기 위한 연산자기호 : +, -, *, /, % 등 을 이용하여 사칙연산int x = 100, y = 200;int addValue = x + y;int subtractValue = x - y;int multiValue = x * y;int divValue = x / y;int modValue = x % y;-> 각각의 연산 결과..

JAVA/기초공부 2024.09.18

[Python] 백준 1005 ACM Craft

문제서기 2012년! 드디어 2년간 수많은 국민들을 기다리게 한 게임 ACM Craft (Association of Construction Manager Craft)가 발매되었다.이 게임은 지금까지 나온 게임들과는 다르게 ACM크래프트는 다이나믹한 게임 진행을 위해 건물을 짓는 순서가 정해져 있지 않다. 즉, 첫 번째 게임과 두 번째 게임이 건물을 짓는 순서가 다를 수도 있다. 매 게임시작 시 건물을 짓는 순서가 주어진다. 또한 모든 건물은 각각 건설을 시작하여 완성이 될 때까지 Delay가 존재한다.위의 예시를 보자.이번 게임에서는 다음과 같이 건설 순서 규칙이 주어졌다. 1번 건물의 건설이 완료된다면 2번과 3번의 건설을 시작할수 있다. (동시에 진행이 가능하다) 그리고 4번 건물을 짓기 위해서는 2..

백준풀이 2024.09.18