We will find a way, we always have.

-interstellar

분류 전체보기 305

[자바] 변수 2

변수의 타입 자료형은 크게 '기본형'과 '참조형' 두 가지로 나뉘고, 기본형 변수에는 실제 값을 저장하고 참조형 변수는 어떤 값이 저장되어 있는 주소를 값으로 갖는다. 자바에서 기본형 변수로써 사용하는 값의 종류 (Type of data)는 논리형(boolean), 숫자, 문자형(char) 이렇게 3가지가 있다. 하지만 더 숫자를 더 세부적으로 나누면 정수형과 실수형으로 나뉘고 여기서 또 각각의 범위에 따라 정수형은 byte, short, int, long 으로, 실수형은 float, double 로 나뉜다. 새로운 클래스를 생성하는 것이 참조형 변수를 선언하는 것이라고 볼 수 있다. HTML 삽입 미리보기할 수 없는 소스 자료형 저장 가능한 값의 범위 크기(bit) 크기(byte) boolean fal..

[2023 카카오 공채] 후기

금일 2시부터 7시까지 총 5시간 동안 카카오 블라인드 공채 코딩테스트가 진행되었다. 총 7문제였다. 1번 문제는 문자열을 잘 쪼개고 날짜 계산만 하면 되는 문제였다. 2번 문제는 그리디 적으로 해결해야할 것 같은 느낌은 들었는데 코드로 구현하려니 어려움을 느꼈다. 한 한시간 정도 잡고 있다가 다른 문제로 넘어가보았다. 7번문제 중에 그래도 조금 자신있는 그래프 유형을 풀어보기로 하였다. 2차원 평면에서 a에서 b로 가는 경로중 사전순으로 가장 앞선 경로를 리턴해주면 되는 문제였다. 나는 당연히 백트래킹으로 접근하였지만 시간 초과가 났다. $ 2

Blah blah 2022.09.24

[알고리즘] 서로소 집합 알고리즘 (Union-Find)

서로소 집합 (Disjoint Sets) 서로소 집합은 공통 원소가 없는 두 집합을 의미한다. A = {1, 2} 와 B = {3, 4} 가 있다면 두 집합은 서로소 관계이다. 서로소 집합 자료구조란 서로소 부분들로 나누어진 원소들의 데이터를 처리하기 위한 자료구조다. 서로소인지 판별하려면 union과 find 연산이 필요하다. union연산은 두 집합을 하나의 집합으로 합치는 연산이고 find 연산은 어떤 원소가 주어졌을 때 이 원소가 속한 집합의 대표를 찾는 연산이다. 즉 find 를 통해 주어진 두 집합의 대표를 비교하여 서로 서로소인지 확인이 가능 한 것이다. 때문에 서로소 집합 자료구조는 유니온파인드(Union-Find)라고도 불리운다. 집합 {1, 2, 3, 4, 5, 6}이 있고 여기에 un..

[백준] 11780번: 플로이드 2 - Python

🔈 문제 n(1 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 📝입력 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b, 한 번 타는데 필요한 비용 c로 이루어져 있다. 시작 도시와 도착 도시가 같은 경우는 없다. 비용은 100,000보다 작거나 ..

[자바] 변수 1 (feat. 개발자 두 명이 자리를 바꾸는 데 필요한 의자 갯수는?)

수학에서의 변수는 상수의 반대로써 "변하는 수"라고 정의되지만 프로그래밍 언어에서의 변수는 값을 저장할 수 있는 메모리상의 공간을 일컫는다. 그래프도 수학과 자료구조에서의 정의가 다른 것 처럼ㅎ 변수를 선언하면 메모리에 공간을 만드는 것이다. 자바의 변수 선언과 초기화는 다음과 같이 한다. HTML 삽입 미리보기할 수 없는 소스 우선 변수를 선언한 다음에 초기화를 할 수 있다. 초기화란 선언된 변수에 유효한 값을 넣어주는 것인데, 만약 초기화를 하지 않았다면 그 변수에는 쓰레기값이 들어가게 되고 사용할 수 없게 된다. 변수를 사용하고자 한다면 변수 선언 후 초기화를 해주자!! 두 변수의 값 교환하기 개발자 밈 중에 개발자 두 명이 자리를 바꾸는 데 필요한 의자 갯수는? 이라는 밈이 있다. 상식적으로 생각..

[자바] 세상과 인사하기

JAVA의 정석이라는 도서와 자바를 부탁해 라는 도서로 자바에 대해 공부를 시작하였다. 해당 도서의 사용 IDE는 이클립스였지만, 주변 사람들의 추천으로 IDE는 인텔리제이를 설치하게 되었다. C 배웠던 것 처럼 파이썬과는 다르게 지정해줘야할 것이 조금 많았다. 자바 코드를 작성하면 컴파일러가 바이트코드로 변역해준다. 이 과정을 컴파일링이라고 한다. 변역된 바이트코드는 자바 가상 기계(JVM)를 통해 기계어로 실시간 통역된다.(인터프리팅) 이렇게 자바는 프로그래밍 과정 중 컴파일링과 인터프리팅 모두 사용하는데 이것이 자바의 특징이다. 때문에 다양한 환경에서 동작하는 특징을 갖는다. 이제 자바 코드를 작성해보자!!! 단순히 출력 파일을 작성하기 위해서도 프로젝트를 생성해서 클래스를 만들고 메인 메소드 작성..

[백준] 14567번: 선수과목 (Prerequisite) - 파이썬

🔈 문제 올해 Z대학 컴퓨터공학부에 새로 입학한 민욱이는 학부에 개설된 모든 전공과목을 듣고 졸업하려는 원대한 목표를 세웠다. 어떤 과목들은 선수과목이 있어 해당되는 모든 과목을 먼저 이수해야만 해당 과목을 이수할 수 있게 되어 있다. 공학인증을 포기할 수 없는 불쌍한 민욱이는 선수과목 조건을 반드시 지켜야만 한다. 민욱이는 선수과목 조건을 지킬 경우 각각의 전공과목을 언제 이수할 수 있는지 궁금해졌다. 계산을 편리하게 하기 위해 아래와 같이 조건을 간소화하여 계산하기로 하였다. - 한 학기에 들을 수 있는 과목 수에는 제한이 없다. - 모든 과목은 매 학기 항상 개설된다. 모든 과목에 대해 각 과목을 이수하려면 최소 몇 학기가 걸리는지 계산하는 프로그램을 작성하여라. 📝입력 첫 번째 줄에 과목의 수 N..

[백준] 5427번: 불 - 파이썬

🔈 문제 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에는 불이 붙지 않는다. 상근이는 동서남북 인접한 칸으로 이동할 수 있으며, 1초가 걸린다. 상근이는 벽을 통과할 수 없고, 불이 옮겨진 칸 또는 이제 불이 붙으려는 칸으로 이동할 수 없다. 상근이가 있는 칸에 불이 옮겨옴과 동시에 다른 칸으로 이동할 수 있다. 빌딩의 지도가 주어졌을 때, 얼마나 빨리 빌딩을 탈출할 수 있는지 구하는 프로그램을 작성하시오. 📝입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스는 최대 100개이다. 각 테스트 케이스의 첫째 줄에는 빌딩 지도의 너비와 높이 w와 h가 주..

[2023 카카오 신입 개발자 공채] 첫 입사 지원

2023 카카오 신입 개발자 공채 모집이 시작되었다 두둥 역시 갓카오 답게 블라인드 공채이다. 아묻따 1차 코테 보고, 1차 합격한 사람들에 한해서 CS테스트를 보고 2차 코테를 본다. 일정은 다음과 같다. 9월 24 2023 KAKAO BLIND RECRUITMENT 1차 코딩테스트 22년 09월 24일 14:00 ~ 09월 24일 19:00 10월 8일 2023 KAKAO BLIND RECRUITMENT 2차 CS테스트 22년 10월 08일 13:30 ~ 10월 08일 13:45 10월 8일 2023 KAKAO BLIND RECRUITMENT 2차 코딩테스트 22년 10월 08일 14:00 ~ 10월 08일 19:00 1차 코딩테스트 시간은 5시간 동안 진행된다... 대박.. 과연 몇문제나 풀 수 있..

Blah blah 2022.09.07

[백준] 2174번: 로봇 시뮬레이션 - 파이썬

🔈 문제 가로 A(1≤A≤100), 세로 B(1≤B≤100) 크기의 땅이 있다. 이 땅 위에 로봇들이 N(1≤N≤100)개 있다. 로봇들의 초기 위치는 x좌표와 y좌표로 나타난다. 위의 그림에서 보듯 x좌표는 왼쪽부터, y좌표는 아래쪽부터 순서가 매겨진다. 또한 각 로봇은 맨 처음에 NWES 중 하나의 방향을 향해 서 있다. 초기에 서 있는 로봇들의 위치는 서로 다르다. 이러한 로봇들에 M(1≤M≤100)개의 명령을 내리려고 한다. 각각의 명령은 순차적으로 실행된다. 즉, 하나의 명령을 한 로봇에서 내렸으면, 그 명령이 완수될 때까지 그 로봇과 다른 모든 로봇에게 다른 명령을 내릴 수 없다. 각각의 로봇에 대해 수행하는 명령은 다음의 세 가지가 있다. 1. L: 로봇이 향하고 있는 방향을 기준으로 왼쪽으..