We will find a way, we always have.

-interstellar

분류 전체보기 289

[백준] 14621번: 나만 안되는 연애 - 파이썬

🔈 문제 깽미는 24살 모태솔로이다. 깽미는 대마법사가 될 순 없다며 자신의 프로그래밍 능력을 이용하여 미팅 어플리케이션을 만들기로 결심했다. 미팅 앱은 대학생을 타겟으로 만들어졌으며 대학교간의 도로 데이터를 수집하여 만들었다. 이 앱은 사용자들을 위해 사심 경로를 제공한다. 이 경로는 3가지 특징을 가지고 있다. 1. 사심 경로는 사용자들의 사심을 만족시키기 위해 남초 대학교와 여초 대학교들을 연결하는 도로로만 이루어져 있다. 2. 사용자들이 다양한 사람과 미팅할 수 있도록 어떤 대학교에서든 모든 대학교로 이동이 가능한 경로이다. 3. 시간을 낭비하지 않고 미팅할 수 있도록 이 경로의 길이는 최단 거리가 되어야 한다. 만약 도로 데이터가 만약 왼쪽의 그림과 같다면, 오른쪽 그림의 보라색 선과 같이 경로..

[백준] 2887번: 행성 터널 - 파이썬

🔈 문제 때는 2040년, 이민혁은 우주에 자신만의 왕국을 만들었다. 왕국은 $ N $개의 행성으로 이루어져 있다. 민혁이는 이 행성을 효율적으로 지배하기 위해서 행성을 연결하는 터널을 만들려고 한다. 행성은 3차원 좌표위의 한 점으로 생각하면 된다. 두 행성 $ A(x_{A}, y_{A}, z_{A}) $와 $ B(x_{B}, y_{B}, z_{B}) $를 터널로 연결할 때 드는 비용은 $ min(\left|x_{A}-x_{B}\right|, \left|y_{A}-y_{B}\right|,\left|z_{A}-z_{B}\right|) $이다. 민혁이는 터널을 총 $ N-1 $개 건설해서 모든 행성이 서로 연결되게 하려고 한다. 이때, 모든 행성을 터널로 연결하는데 필요한 최소 비용을 구하는 프로그램을 작..

[백준] 16932_모양만들기 - 파이썬

🔈 문제 N×M인 배열에서 모양을 찾으려고 한다. 배열의 각 칸에는 0과 1 중의 하나가 들어있다. 두 칸이 서로 변을 공유할때, 두 칸을 인접하다고 한다. 1이 들어 있는 인접한 칸끼리 연결했을 때, 각각의 연결 요소를 모양이라고 부르자. 모양의 크기는 모양에 포함되어 있는 1의 개수이다. 배열의 칸 하나에 들어있는 수를 변경해서 만들 수 있는 모양의 최대 크기를 구해보자. 📝입력 첫째 줄에 배열의 크기 N과 M이 주어진다. 둘째 줄부터 N개의 줄에는 배열에 들어있는 수가 주어진다. 📑출력 첫째 줄에 수 하나를 변경해서 만들 수 있는 모양의 최대 크기를 출력한다. 🚫제한 $ 2 HTML 삽입 미리보기할 수 없는 소스 위의 코드는 시간초과가 발생하였다. 이중반복문을 두번이나 돌았고, (1을 찾기 위해, ..

[자바] formatting 출력하기, 입력받기

printf() C언어에서 사용하던 printf()를 자바에서도 사용할 수 있다. 지금까지 사용하던 println()은 값을 변환하지 않고는 다른 형식으로 출력할 수 없다. 이제 printf() 사용방법을 확인해보자. 지시자 설명 %b 불리안(boolean) 형식으로 출력 %d 10진(decimal) 정수의 형식으로 출력 %o 8진(octal) 정수의 형식으로 출력 %x, %X 16진(hexa-decimal) 정수의 형식으로 출력 %f 부동 소수점(floating-point)의 형식으로 출력 %e, %E 지수(exponent) 표현식의 형식으로 출력 %c 문자(character)로 출력 %s 문자열(string)로 출력 HTML 삽입 미리보기할 수 없는 소스 위의 소스코드를 실행하면 . . . 이렇게 출..

[자바] 변수 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)를 통해 기계어로 실시간 통역된다.(인터프리팅) 이렇게 자바는 프로그래밍 과정 중 컴파일링과 인터프리팅 모두 사용하는데 이것이 자바의 특징이다. 때문에 다양한 환경에서 동작하는 특징을 갖는다. 이제 자바 코드를 작성해보자!!! 단순히 출력 파일을 작성하기 위해서도 프로젝트를 생성해서 클래스를 만들고 메인 메소드 작성..