굥굥 DEV
[백준][코틀린] 2667 단지번호 붙이기
문제 내용 문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. 출력 첫 번째 줄에는 총 단지수를 출력하시오. ..
[공식문서를 읽자] Basic Syntax
Basic syntax | Kotlin kotlinlang.org Package definition and imports 패키지 명세와 import 문은 소스 파일의 최상단에 위치한다. 디렉토리와 패키지를 일치시킬 필요는 없다 : 소스 파일은 독단적으로(임의로?) 시스템에 배치할 수 있다. package my.demo import kotlin.text.* // ... Program entry point 코틀린 애플리케이션의 진입점은 main 함수이다. // 문자열 인자가 없는 main 함수 fun main() { println("Hello world!") } // 문자열 인자가 있는 main 함수 fun main(args: Array) { println(args.contentToString()) } Pr..
프로세스 & 스레드 (Process & Thread)
프로세스 실행중인 프로그램, 현대의 컴퓨팅 시스템에서 작업의 단위 실행 파일이 메모리에 적재될 때 프로그램은 프로세스가 된다. 프로세스의 현재 활동의 상태는 프로그램 카운터 값과 프로세서 레지스터의 내용으로 나타낸다. 프로세스의 메모리 배치는 일반적으로 여러 섹션으로 구분되며 아래와 같다. 텍스트 섹션 : 실행 코드 데이터 섹션 : 전역 변수 힙 섹션 : 프로그램 실행 중에 동적으로 할당되는 메모리 스택 섹션 : 함수를 호출할 때 임시 데이터 저장장소 (함수 매개변수, 복귀 주소 및 지역 변수) 텍스트 및 데이터 섹션의 크기는 고정되기 때문에 프로그램 실행 시간 동안 크기가 변하지 않는다. 그러나 스택 및 힙 섹션은 프로그램 실행 중에 동적으로 줄어들거나 커질 수 있다. 함수가 호출될 때마다 함수 매개변..
[백준][코틀린] 1001 A-B
문제 내용 문제 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0
[백준][코틀린] 1000 A+B
🐯 이전에 풀었던 브론즈 문제들도 누군가에게는 도움이 될 것 같아 나눠서 함께 포스팅 문제 내용 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0
[백준][코틀린] 11650 좌표 정렬하기
문제 내용 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi 와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 예제 입력 예제 출력 5 3 4 1 1 1 -1 2 2 3 3 1 -1 1 1 2 2 3 3 3 4 문제 풀이 2022.01.28 - [Algorithm/with Kotlin] - [백준] 1181 단어 정렬 이전 문제인 118..
[백준][코틀린] 10816 숫자 카드 2
문제 내용 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고..
[백준][코틀린] 2606 바이러스
문제 내용 문제 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다. 어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 ..
[Java] 변수
1. 변수 1. 변수란 ? 단 하나의 값을 저장할 수 있는 메모리 공간 2. 변수의 선언과 초기화 int age; // 변수의 선언 age = 25; // 변수의 초기화 변수 타입 : 변수에 저장될 값이 어떤 타입인지를 지정해주는 것 (정수형, 실수형, 문자형 등등..) 변수 이름 : 메모리 공간에 이름을 붙여준 것 → 변수를 선언하면, 메모리의 빈 공간에 ' 변수 타입에 알맞은 크기의 저장공간이 확보되고, 앞으로 이 저장공간은 '변수 이름'을 통해 사용 가능 🐯 왜 변수를 선언한 이후 반드시 변수를 초기화 해주어야될까? 메모리는 여러 프로그램이 공유하는 자원이다. 전에 다른 프로그램에 의해 저장된 garbage value가 남아있을 수 있기 때문에 반드시 초기화 해주어야 한다!! 3. 변수의 명명규칙 ..
안드로이드 앱의 핵심 요소
안드로이드 액티비티 안드로이드 앱은 액티비티라는 컴포넌트가 하나 이상 결합되어 생성된다. 액티비티는 앱의 기능을 갖는 단일의 독립 실행형 모듈이다. (리눅스의 프로세스로 실행됨) 하나의 사용자 인터페이스 화면 및 그 기능과 밀접하게 연관된다. 재사용과 교체 가능한 구성요소로 만들어져서 서로 다른 앱에서 공유할 수 있다. (새로운 이메일 액티비티를 작성하지 않고 기존 이메일 앱의 액티비티를 이용할 수 있음) 안드로이드 Activity 클래스의 서브 클래스로 생성되어야 하며, 앱의 다른 액티비티와 완전히 독립적으로 구현 되어야 함 액티비티는 다른 액티비티의 함수를 직접 호출할 수 없고, 데이터도 직접 액세스 할 수 없음 ( 그럼 어떻게 하라고 → 인텐트와 콘텐트 제공자를 사용해서 액티비티를 공유해라) 안드로..
[백준][코틀린] 10814 나이순 정렬
문제 내용 문제 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다. 출력 첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력..
[백준][코틀린] 2751 수 정렬하기 2
문제 내용 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 예제 출력 5 5 4 3 2 1 1 2 3 4 5 문제 풀이 코드 1 ) 첫 풀이로는 받아오는대로 내장함수를 이용하여 소팅해주었다. 코드 2 ) 하지만, 중복이 없는 숫자라고 했으니 배열을 두고 나올때마다 체킹 해두고, 체킹되어있는 인덱스만 출력하면 시간 복잡도를 줄일 수 있는 방법 또한 있다. ̆̈ 코드 import..
[백준][코틀린] 1181 단어 정렬
문제 내용 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 예제 입력 예제 출력 13 but i wont hesitate no more no more it cannot wait im yours i im it no but more wait wont yours cannot ..
[백준][코틀린] 1260 DFS와 BFS
문제 내용 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하..
[Java] 자바 그리고 JVM
자바 언어의 특징 1. 운영체제에 독립적이다. 자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운영체제에 종속적이다. 자바 프로그램은 JVM하고만 통신하고 JVM이 자바 응용 프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달함 2. 객체지향 언어이다. 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체 지향 언어이다. 3. 자동 메모리 관리 (Garbage Collection) 가비지 컬렉터가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 된다. 4. 네트워크와 분산처리를 지원한다. 5. 멀티 쓰레드를 지원한다. 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당함 6. 동적 로딩을 지원한다. 실행 시에 모든 클래스가 로딩되지 않고 ..