podory의 등록된 링크

 podory로 등록된 티스토리 포스트 수는 30건입니다.

[프로그래머스 입문] 배열 원소의 길이 with Kotlin [내부링크]

문제설명 문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ strlist 원소의 길이 ≤ 100 strlist는 알파벳 소문자, 대문자, 특수문자로 구성되어 있습니다. 입출력 예 입출력 예 설명 ["We", "are", "the", "world!"]의 각 원소의 길이인 [2, 3, 3, 6]을 return합니다. ["I", "Love", "Programmers."]의 각 원소의 길이인 [1, 4, 12]을 return합니다. 코드 class Solution { fun solution(strlist: Array): IntArray = strlist.map { x -> x.length }.t..

[프로그래머스 입문] 점의 위치 구하기 with Kotlin [내부링크]

문제 설명 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다. x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다. x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다. x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다. x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요. 제한사항 dot의 길이 = 2 dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다 -500 ≤ dot의 원소 ≤ 500 dot의 ..

[자료구조] 이진트리(Binary-Tree)란? [내부링크]

이진트리란? 각 노드가 최대 2개의 자식을 갖는 트리이다. 하나의 노드의 자식이 3개 이상은 이진트리로 볼 수 없다. 이진트리의 특징 각 노드는 최대 2개의 자식을 가질 수 있으며, 왼쪽과 오른쪽 자식노드로 구분한다. 순회 방법은 전위 순회, 중위 순회, 후위 순회가 있다. 이진트리의 종류 전이진트리(Full Binary Tree or Strict Binary Tree) 모든 노드의 자식이 0개, 또는 2개의 자식을 갖는 트리를 말한다. 왼쪽 이미지의 경우, J의 노드가 K라는 자식을 갖고 있기 때문에 전이진트리가 성립하지 않는다. 오른쪽 이미지의 경우, 각 노드가 0개 또는 2개의 자식을 갖고있으므로 전이진트리가 성립한다. 완전이진트리(Complete Binary Tree) 마지막 레벨을 제외하고 모든..

[프로그래머스 입문] 문자열 뒤집기 with Kotlin [내부링크]

문제 설명 문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ my_string의 길이 ≤ 1,000 입출력 예 입출력 예 설명 my_string이 "jaron"이므로 거꾸로 뒤집은 "noraj"를 return합니다. my_string이 "bread"이므로 거꾸로 뒤집은 "daerb"를 return합니다. 코드 class Solution { fun solution(my_string: String): String = my_string.reversed() }

[프로그래머스 입문] 짝수 홀수 개수 with Kotlin [내부링크]

문제 설명 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ num_list의 길이 ≤ 100 0 ≤ num_list의 원소 ≤ 1,000 입출력 예 입출력 예 설명 [1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다. [1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다. 코드 class Solution { fun solution(num_list: IntArray): IntArray { var array = intArrayOf(0, 0) num_list.forEach { x -> if(x % 2 == 0) array..

[자료구조] 트리(Tree)란? [내부링크]

트리란 트리는 그래프의 일종으로, 노드로 이루어진 계층적 구조이다. 한 노드를 시작으로 다른 노드를 순회하며 자기 자신에게 돌아오는 순환 없는 연결 그래프이다. 트리의 용어 루트 노드(Root Node): 트리 구조의 최상위 노드로, 모든 다른 노드들은 이 루트 노드에서 시작된다. 부모 노드(Parent Node): 다른 노드에게 연결된 상위 노드를 가리킨다. 자식 노드(Child Node): 부모 노드에 의해 직접적으로 연결된 하위 노드를 말한다. 잎 노드(Leaf Node): 자식 노드가 없는 노드로, 트리 구조의 끝에 위치한다. 서브 트리(Subtree): 트리 안에서 다른 트리를 포함하는 부분 트리를 의미한다. 형제(Sibling): 같은 부모를 가진 노드를 의미한다. 간선(edge): 노드를 연..

[프로그래머스 입문] 편지 with Kotlin [내부링크]

문제 설명 머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요. 제한사항 공백도 하나의 문자로 취급합니다. 1 ≤ message의 길이 ≤ 50 편지지의 여백은 생각하지 않습니다. message는 영문 알파벳 대소문자, ‘!’, ‘~’ 또는 공백으로만 이루어져 있습니다. 입출력 예 입출력 예 설명 message의 글자 수가 15개로 최소 가로 30cm의 편지지가 필요합니다. message의 글자 수가 11개로 최소 가로 22cm의 편지지가 필요합니다. 코드 class Sol..

[프로그래머스 입문] 배열의 평균값 with Kotlin [내부링크]

문제 설명 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요. 제한사항 0 ≤ numbers의 원소 ≤ 1,000 1 ≤ numbers의 길이 ≤ 100 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다. 입출력 예 입출력 예 설명 numbers의 원소들의 평균 값은 5.5입니다. numbers의 원소들의 평균 값은 94.0입니다. 코드 class Solution { fun solution(numbers: IntArray): Double = numbers.average() }

[프로그래머스 입문] 짝수의 합 with Kotlin [내부링크]

문제 설명 정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요. 제한사항 0 < n ≤ 1000 입출력 예 입출력 예 설명 n이 10이므로 2 + 4 + 6 + 8 + 10 = 30을 return 합니다. n이 4이므로 2 + 4 = 6을 return 합니다. 코드 class Solution { fun solution(n: Int): Int { var answer: Int = 0 for (i in 2 .. n step 2) answer += i return answer } }

[프로그래머스 입문] 각도기 with Kotlin [내부링크]

문제설명 각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요. 예각 : 0 3 180 -> 4 else -> { 0 } } }

[프로그래머스 입문] 두 수의 나눗셈 with Kotlin [내부링크]

문제설명 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요. 제한사항 0

[프로그래머스 입문] 두 수의 합 with Kotlin [내부링크]

문제 설명 정수 num1과 num2가 주어질 때, num1과 num2의 합을 return하도록 soltuion 함수를 완성해주세요. 제한 사항 -50,000 ≤ num1 ≤ 50,000 -50,000 ≤ num2 ≤ 50,000 입출력 예 입출력 예 설명 num1이 2이고 num2가 3이므로 2 + 3 = 5를 return합니다. num1이 100이고 num2가 2이므로 100 + 2 = 102를 return합니다. 코드 class Solution { fun solution(num1: Int, num2: Int): Int = num1 + num2 }

[프로그래머스 입문] 숫자 비교하기 with Kotlin [내부링크]

문제설명 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요. 제한사항 0 ≤ num1 ≤ 10,000 0 ≤ num2 ≤ 10,000 입출력 예 입출력 예 설명 num1이 2이고 num2가 3이므로 다릅니다. 따라서 -1을 return합니다. num1이 11이고 num2가 11이므로 같습니다. 따라서 1을 return합니다. num1이 7이고 num2가 99이므로 다릅니다. 따라서 -1을 return합니다. 코드 class Solution { fun solution(num1: Int, num2: Int): Int = if(num1 == num2) 1 else -1 }

[프로그래머스 입문] 나이 출력 with Kotlin [내부링크]

문제설명 머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다. 나이 age가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요. 제한사항 0 < age ≤ 120 나이는 태어난 연도에 1살이며 1년마다 1씩 증가합니다. 입출력 예 입출력 예 설명 2022년 기준 40살이므로 1983년생입니다. 2022년 기준 23살이므로 2000년생입니다. 코드 class Solution { fun solution(age: Int): Int = 2022 - age + 1 }

[프로그래머스 입문] 두 수의 곱 with Kotlin [내부링크]

문제설명 정수 num1, num2가 매개변수 주어집니다. num1과 num2를 곱한 값을 return 하도록 solution 함수를 완성해주세요. 제한사항 0 ≤ num1 ≤ 100 0 ≤ num2 ≤ 100 입출력 예 입출력 예 설명 num1이 3, num2가 4이므로 3 * 4 = 12를 return합니다. num1이 27, num2가 19이므로 27 * 19 = 513을 return합니다. 코드 class Solution { fun solution(num1: Int, num2: Int): Int = num1 * num2 }

[프로그래머스 입문] 나머지 구하기 with Kotlin [내부링크]

문제설명 정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요. 제한사항 0

[프로그래머스 입문] 몫 구하기 with Kotlin [내부링크]

문제 설명 정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요. 제한사항 0

[프로그래머스 입문] 두 수의 차 with Kotlin [내부링크]

문제설명 정수 num1과 num2가 주어질 때, num1에서 num2를 뺀 값을 return하도록 soltuion 함수를 완성해주세요. 제한사항 -50000 ≤ num1 ≤ 50000 -50000 ≤ num2 ≤ 50000 입출력 예시 입출력 예시 설명 num1이 2이고 num2가 3이므로 2 - 3 = -1을 return합니다. num1이 100이고 num2가 2이므로 100 - 2 = 98을 return합니다. 코드 class Solution { fun solution(num1: Int, num2: Int): Int = num1 - num2 }

[자료구조] 연결리스트(Linked List)란? [내부링크]

연결리스트란? 연결리스트는 데이터를 순차적으로 저장하는 단방향 선형구조이다. 각 요소는 노드로 구성되어 있으며, 각 노드는 자신의 데이터와 다음 노드를 가리키는 포인터(혹은 링크)로 이루어져 있다. 연결리스트의 특징 각 노드는 포인터(혹은 링크)를 갖고 있어 데이터가 일렬로 연결되는데, 한 방향으로만 탐색이 가능하다. 연결리스트의 시작을 알리는 헤드가 있는데, 이 헤드 노드는 첫 번째 노드를 가리키는 역할을 한다. 동적으로 크기를 조절할 수 있어 삽입과 삭제가 배열보다 간단하고 메모리 효율도 좋다. 특정 요소에 접근하기 위해서는 헤드부터 순차적으로 탐색해야 한다. 연결리스트의 연산으로는 노드 추가, 노드 삭제, 탐색이 있다. 연결리스트의 시간복잡도 노드 추가 노드 추가에는 크게 head에 추가, 마지막에..

[자료구조] 덱(Deque)이란? [내부링크]

덱이란? 덱은 "double-ended queue"의 줄인말로, 양끝에서 삽입 삭제가 가능한 큐를 의미한다. 즉, 덱은 큐와 스택의 특징을 모두 지닌다. 덱의 종류 스크롤(scroll) : 삽입이 한쪽 끝으로만 가능하도록 설정한 데크(입력 제한 데크) 셀프(self) : 삭제가 한쪽 끝으로만 가능하도록 설정한 데크(출력 제한 데크) 덱의 특징 덱은 양 방향에서 삽입과 삭제가 동시에 일어날 수 있다. 종류에 따라 스크롤 덱과 셀프 덱을 구현할 수도 있다. 동적으로 크기를 조절할 수 있다. 덱의 연산은 덱의 앞에 원소 추가, 덱의 뒤에 원소 추가, 덱의 앞에 있는 원소 삭제, 덱의 뒤에 있는 원소 삭제, 덱의 앞에 있는 원소 읽기, 덱의 뒤에 있는 원소 읽기, 사이즈 확인, 비어있는지 확인이 있다. 덱의 시..

[자료구조] 큐(Queue)란? [내부링크]

큐란? 큐(Queue)는 데이터를 일렬로 나열한 선형구조로 되어있다. 일시적으로 데이터를 저장하고 처리할 때 사용되며, 다양한 컴퓨터 애플리케이션에 사용된다. 나중에 들어간 데이터가 가장 먼저 나오는 스택과는 반대되는 개념이다. 큐의 특징 먼저 들어간 데이터가 먼저 나오는 선입선출(FIFO, First In First Out)구조로 이루어져있다. 큐가 꽉차서 데이터를 더 넣을 수 없는 상태를 오버플로우(Overflow), 큐가 비어있어서 더 꺼낼 수 없는 상황을 언더플로우(Underflow)라고 한다. 큐는 상황에 따라 배열을 사용해서 구현할 수도, 연결리스트를 이용해서 구현할 수도 있다. 큐의 연산은 삽입, 삭제, 맨 앞의 데이터 읽기, 큐가 비어있는지 확인, 큐의 사이즈 확인, 검색이 있다. 큐의 시..

[자료구조] 스택(Stack)이란? [내부링크]

스택이란? 스택은 프로그래밍에서 자주 쓰이는 자료구조 중 하나이다. 이름에서 알 수 있듯이 데이터를 쌓으며 사용하는 자료구조이다. 스택의 특징 스택은 나중에 넣은 값이 가장 먼저 나온다는 후입선출(LIFO, Last-In-First-Out) 형식의 선형 자료구조이다. 스택은 데이터를 한쪽으로만 넣을 수 있으며, 중간에 있는 데이터를 삭제할 수는 없다. 배열, 또는 연결리스트로 구현이 되어 구현하기 쉽다. 스택은 한정된 용량을 갖고있어, 저장 용량보다 초과하여 데이터를 저장할 경우 스택 오버플로우(Stack Overflow)가 발생한다. 함수 호출, 오류 발생 시 디버깅 역추적(Traceback) 할 때 도움을 준다. 스택의 연산은 삽입, 삭제, 읽기로 이루어진다. 시간복잡도 삽입(Push) 스택의 최상단..

[네트워크] WWW란? [내부링크]

WWW란? WWW(World Wide Web, W3)는 인터넷에서 정보를 공유하고 접근할 수 있는 시스템이다. 흔히 웹(Web)이라고 부르며, 전 세계적인 정보 공간을 일컫는다. 문서, 사진, 비디오 등의 정보가 하이퍼텍스트(Hypertext)로 연결되어 있으며, 하이퍼링크(Hyperlink)를 통해 다른 웹 페이지로 넘어갈 수 있다. 웹의 특징 분산된 정보 : 전 세계의 컴퓨터 네트워크에 연결된 다양한 서버에 분산된 정보를 의미하며, 각각의 정보는 웹을 통해 접근할 수 있다. 하이퍼텍스트와 하이퍼링크 : 웹의 정보는 하이퍼텍스트로 이루어져 있으며, 텍스트나 문서, 사진 등이 링크로 이루어져 있음을 의미한다. 검색과 탐색 : 웹 브라우저를 통해 검색 엔진을 사용하여 정보를 찾을 수 있으며, 하이퍼링크를 ..

[네트워크] HTTP란? [내부링크]

HTTP란? HTTP는 HyperText Transfer Protocol의 약자로, 네트워크에서 데이터를 주고 받을때 필요한 통신 규약을 의미한다. 클라이언트와 서버 간 데이터를 교환하기 위한 표준 프로토콜로, 주로 웹 브라우저와 웹 서버 사이에 사용된다. 일반적으로 클라이언트 시스템에서 서버에 요청한 다음, 서버에서 응답 메시지를 보내는 것이 포함된다. HyperText : hyper(건너편의, 초월, 과도한)와 text의 합성어로, 다른 텍스트로 연결되어 있는 텍스트로를 의미한다. 일반적인 텍스트와는 달리 다른 문서, 이미지, 비디오 등의 다른 매체와도 연결이 가능하다. 이를 통해 하이퍼링크로 연결된 다른 문서를 따라가며 관련 정보를 쉽고 빠르게 접근할 수 있다. Protocol : 송수신간의 데이터..

[자료구조] 원형 큐(Circle Queue) [내부링크]

원형 큐란? 원형 큐(Circle Queue)는 큐의 한 형태이다. 큐를 배열로 구현을 하게 될 경우, 데이터를 삭제하게 되면 삭제한 부분은 더 이상 사용할 수 없다. 이 경우 삭제를 배열 끝까지 하게 되면 그 큐는 더 이상 사용할 수 없게 된다. 이때 사용하는 것이 바로 원형 큐이다. 원형 큐의 특징 원형 큐의 경우, 일반적으로 배열로 구현한다. 원형 큐는 배열의 앞과 끝을 이어 배열에 끝에 도달했다면 다시 처음으로 되돌아오는 큐를 의미한다. 배열의 앞을 가리키는 변수(front)와 배열의 끝을 가리키는 변수(rear)를 통해 데이터를 삽입하고 삭제한다. 데이터를 삽입할 때마다 rear가 한 칸 증가한다. 데이터를 삭제하면 front가 한 칸 증가한다. 만일 rear가 배열의 끝에 도달했는데, 배열의..

[자료구조] 배열(Array)란? [내부링크]

배열이란? 배열은 프로그래밍에서 데이터를 저장하는 데 사용되는 자료구조이다. 배열의 특징 동일한 타입의 데이터를 연속된 메모리의 공간에 순차적으로 저장하는 선형 자료구조 형태이다. 배열은 선언할 때 크기를 정하면 그 크기로 고정되며, 선언된 크기는 배열을 다시 선언하지 않으면 변경할 수 없다. 배열의 연산은 크게 접근, 추가, 삭제, 검색으로 이루어진다. 시간복잡도 접근(Access) 배열은 인덱스로 접근을 하게 된다. 배열의 첫 번째 인덱스의 주소는 기본적으로 알고 있기 때문에, 원하는 인덱스를 접근하는 방법은 [첫 번째 인덱스의 주소 + (자료형의 크기) * 접근하고자 하는 인덱스] 한 주소에 접근하면 된다. 따라서 시간복잡도는 O(1)이다. 삽입(Insertion) 배열의 시작 부분에 삽입을 할 때..

[객체지향] 객체 지향 프로그래밍(OOP), 이게 무엇인가? [내부링크]

객체 지향 프로그래밍(Object-Oriented Programming, OOP)이란, 여러개의 객체 단위로 이루어지는 컴퓨터 프로그래밍을 의미한다. 컴퓨터 프로그래밍을 순차적인 명령어의 목록으로 보는 것이 아닌, 여러가지의 객체를 조합하여 객체들 간의 상호작용을 통해 프로그램을 구축하는 방식이다. 객체 지향 프로그래밍이 나오게 된 이유 이전의 프로그래밍은 절차 지향 프로그래밍(Procedural Programming)이다. 절차(프로시저)는 프로그래밍에서 일렬의 동작 단위로, 매개변수를 받아들이고 작업을 수행 후에 결과를 반환한다. 이때 프로시저와 함수의 차이점은 프로시저는 반환값이 없고, 함수는 반환값이 있다. 절차 지향 프로그래밍은 코드를 모듈 단위로 구성하여 작업한다. 이는 반복되는 작업을 모듈화..

[자료구조] 비선형 자료구조란 무엇인가? [내부링크]

비선형 자료구조(Non-Linear)는 데이터의 요소들이 계층적인 관계를 가지거나 순차적으로 연결되지 않는 자료구조를 말한다. 비선형 자료구조는 계층적인 관계이기에 효율적인 탐색을 할 때 사용한다. 비선형 자료구조의 내부 데이터들은 하나의 데이터 뒤에 여러개의 데이터가 붙을 수 있어 1:N 또는 N:N의 관계를 가진다. 비선형 자료구조의 종류는 다음과 같다. 트리 그래프 힙 출처 : 자료구조 정의와 종류

[자료구조] 자료구조란 무엇인가? [내부링크]

자료구조(資料構造, Data Structure)는 컴퓨터 과학에서 데이터를 효율적으로 조작, 저장 및 관리하기 위한 방법이나 구조를 의미한다. 자료구조를 효율적으로 사용하는 것은, 보다 효율적인 알고리즘을 사용할 수 있게 한다. 상황에 맞는 자료구조를 사용한다면, 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 도와준다. 자료구조에는 형태에 따라 선형 자료구조와 비선형 자료구조로 나뉘게 된다. 출처 : 자료구조 위키백과, 이미지 출처

[자료구조] 선형자료구조란 무엇인가? [내부링크]

선형 자료구조(Linear Data Structure)는 데이터가 일렬로 연결되어 있는 자료구조를 얘기한다. 선형 자료구조는 데이터를 순차적으로 저장하고 접근하는데 사용한다. 선형 자료구조의 내부 데이터들은 하나의 데이터 뒤에 하나의 데이터가 오는 1:1의 관계를 가진다. 선형 자료구조의 종류는 다음과 같다. 배열 스택 큐 환형 큐 덱 연결리스트 이중 연결리스트 출처 : 자료구조의 정의와 종류