분류 전체보기 66

[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

[CS] 원리를 아는 개발자 되기

CS 공부하기로 마음 먹은 이유나는 cs공부를 좋아하진 않았다. 원래 이론공부를 좋아하지않았고 이론보다는 직접 코드를 쳐가면서 바로바로 눈에 보이고 그 때 그 때 문제점을 찾아서 수정해나가는 편이 빨랐고 쉽게 느껴졌기 때문이다. 이렇게해서 많은 과제와 팀플과 프로젝트들을 해냈지만 요즘 완전하지 못한다고 느낀다. 특히 ChapGPT 가 발전될수록 내가 하는 일들은 Ctrl+c, Ctrl+v 가 됐다..ㅜㅜ그래서 프로그램의 실행 원리를 보다 정확하게 이해하는게 중요하다고 생각되어서 공부를 시작하려 한다!    일단 작동만 하는 코드가 아니라 제대로 작동하는 코드로!강의나 책에서 제시하는 코드를 무작정 따라 하며 프로그램을 만들고, 특정 기능을 추가하고 싶을 때는 무작위로 검색하여 소스 코드를 복붙하면 그럴듯..

CS공부 2024.09.17

[JAVA 기초] 기본 자료형 정리 - 정수형, 실수형, 논리형, 오버플로

기본 자료형 종류정수형 - byte, short, long, char실수형 - float, double논리형 - boolean   정수형(Integer) 각 자료형에 따라서 기억장소의 크기가 정해진다.byte 형 - 8 비트- 변수에 나타낼 수 있는 값의 범위 : -128 ~ 127short 형- 16 비트- 변수에 나타낼 수 있는 값의 범위 : -32768 ~ 32767int 형- 32 비트- -2147483648 ~ 2147483647long 형- 64 비트char 형- 16비트- 문자는 유니코드로 나타낸다- char 형은 int 형으로 형 변화가 가능하며 나타낼 수 있는 문자의 개수의 범위는 0 ~ 65535System.out.print("int 형 정수값 입력: ");int it = sc.next..

JAVA/기초공부 2024.09.16

[Python] 백준 13172 Σ

문제실제로 존재하는지 아닌지는 차치하고, 당신에게 삼면체 주사위가 있어서 이 주사위를 굴린다고 생각해보자. 주사위를 굴렸을 때 각 면이 나올 확률은 모두 동일하게 1/3 이다. 한 면에는 1, 다른 한 면에는 2, 남은 한 면에는 4가 적혀있다고 하면 주사위를 굴렸을 때 나오게 되는 숫자의 기댓값은 과연 몇일까? 간단하게도 셋의 평균인 7/3이 될 것이다.이 문제를 조금 확장해서, "N면체 주사위의 각 면에 적힌 수가 주어졌을 때, 주사위를 굴렸을 때 각 면이 나올 확률이 모두 같다면 주사위를 굴렸을 때 나오게 되는 수의 기댓값은 과연 몇일까?"라는 문제가 주어졌다고 하자. 위의 예시에 대한 답을 소수로 출력한다면 2.33333333...일텐데, 무한한 자릿수를 모두 출력할 수는 없으니 적당히 끊어서 출..

백준풀이 2024.09.16

[Python] 백준 16236 아기 상어

문제N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다.아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다.아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다.아기 상어가 어디로 이동할지 결정하는 방법은 아래와 같다.더 이상 먹을 수 있는 물고기가 공간에 없다면 아기 상어는 엄마 상어에게..

백준풀이 2024.09.16