별의 공부 블로그 🧑🏻‍💻

🗒️ Source Code (118)

728x90
  1. 2022.12.13 [C++] 3개의 숫자 중에서 최댓값 구하기 (max(a, b, c))

    3개의 숫자 중에서 최댓값 구하기 (max(a, b, c)) 들어가며 @max()@ 함수의 매개변수로 2개의 숫자밖에 넣질 못한다. 따라서 3개 이상의 숫자를 비교하려면 @max(a, max(b, c))@와 같이 사용해야 한다. 하지만 다음과 같이 간단하게 3개의 숫자 중 최댓값을 구하는 커스텀 함수를 작성하여 사용할 수 있다. 방법 int myMax(int a, int b, int c) { return a > b ? (a > c) ? a : c : (b > c) ? b : c; } a > b ? (a > c) ? a : c : (b > c) ? b : c 예제 #include using namespace std; int myMax(int a, int b, int c) { return a > b ? (a..

  2. 2022.07.12 [HTML] 요소에 마우스 커서를 올릴 때 설명문 나타나도록 하기 (Hover Text 추가하기)

    요소에 마우스 커서를 올릴 때 설명문 나타나도록 하기 (Hover Text 추가하기) 들어가며 요소에 속성을 추가하여 요소에 마우스 커서를 올리면 설명문이 나타나도록 설정할 수 있다. 방법 요소에 title 속성을 지정해주면 된다. 사용 예 참고 https://stackoverflow.com/questions/11022843/add-hover-text-without-javascript-like-we-hover-on-a-users-reputation Add hover text without javascript like we hover on a user's reputation In stackoverflow, when we hover on a user's reputation we see a text. I ha..

  3. 2022.07.01 [CSS] CSS를 이용하여 이미지 대체하기

    CSS를 이용하여 이미지 대체하기 들어가며 간단하게 CSS 속성을 이용하여 기존의 이미지를 대체해보자. 방법 content 속성을 이용하여 다른 이미지로 대체해준다. .A img { content: url("image2.png"); } 참고 https://stackoverflow.com/questions/12142386/replacing-an-image-in-an-img-tag-using-css Replacing an image (in an tag) using css I have the following html: In my media queries css style sheet, I would like to replace that image stackoverflow.com

  4. 2022.06.28 [Python] 1차원/2차원 배열의 중앙값 계산하기

    1차원/2차원 배열의 중앙값 계산하기 들어가며 이용하여 1차원 또는 2차원 배열의 중앙값을 계산해보자. 2차원 배열의 경우, 1차원 배열로 만든 후, 정렬하는 방법을 사용한다. 중앙값(Median) 데이터를 일렬로 정렬해서 나열한 후, 나열된 숫자의 가운데에 위치하는 값을 대푯값으로 하는 방법 중앙값을 구하려면 우선 데이터를 오름차순 또는 내림차순으로 정렬해야 한다. 데이터의 개수가 짝수 개인 경우, 중앙값을 (개수/2) 또는 (개수/2 - 1) 어느 것을 해도 된다. 프로그램 구현 ① : 1차원 배열의 중앙값 계산하기 선택 정렬(Selection Sort)을 이용하여 중앙값을 계산해본다. def selectionSort(ary) : n = len(ary) for i in range(0, n-1) : m..

  5. 2022.06.16 [Python] 10진수를 2진수/8진수/16진수로 변환하기

    10진수를 2진수/8진수/16진수로 변환하기 들어가며 재귀(Recursion) 함수를 이용하여 간단하게 10진수를 2진수/8진수/16진수로 변환하는 프로그램을 작성할 수 있다. 프로그램 구현 0부터 F(15)까지의 문자를 리스트에 순서대로 넣어준 후, 필요할 때마다 리스트의 인덱스에 접근하여 나타내도록 하면 된다. def notation(base, n) : if n < base : print(numberChar[n], end = ' ') else : notation(base, n // base) print(numberChar[n % base], end = ' ') numberChar = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] numberChar += [..

  6. 2022.06.16 [Python] 회문/팰린드롬(Palindrome) 판단하기

    회문/팰린드롬(Palindrome) 판단하기 들어가며 회문(Palindrome) : 앞에서부터 읽든 뒤에서부터 읽든 동일한 단어나 문장 대·소문자는 구분하지 않고, 공백이나 특수 문자는 제외한다. 첫 글자와 마지막 글자를 비교하여 같으면 회문일 수 있고, 다르면 회문이 아니다. 비교하지 않은 글자가 한 글자 이하이면 회문으로 확정하고, 한 글자 이하가 아니면 첫 글자는 다음 글자로 마지막 글자는 바로 앞 글자로 이동하는 식으로 비교하고 확인하는 과정을 반복한다. 회문인 예 회문이 아닌 예 프로그램 구현 재귀 함수를 이용하여 팰린드롬의 여부를 확인하는 프로그램을 작성할 수 있다. def palindrome(pStr) : if len(pStr) X kayak--> O Borrow or rob--> O 주유소..

  7. 2022.06.11 [CSS] 텍스트 요소 가운데 정렬하기 (horizontally, vertically)

    텍스트 요소 가운데 정렬하기 (horizontally, vertically) 들어가며 CSS를 이용하여 간단하게 텍스트 요소를 수직적/수평적으로 가운데 정렬할 수 있다. 방법 ① 모든 텍스트를 수평적으로(Horizontally) 가운데 정렬할 경우 요소의 text-algin 속성을 center 로 설정해준다. body { text-align: center; } ② 텍스트를 수직적으로(Vertically) 가운데 정렬할 경우 padding 속성 이용하기 요소의 padding 속성을 num1_size 0 num1_size 로 설정해준다. div { padding: 50px 0 50px; } line-height 속성 이용하기 요소의 line-height 속성과 height 속성을 비슷하게 설정해준다. div..

  8. 2022.06.03 [JavaScript] jQuery를 사용하지 않고 최상단 화면 이동 기능 구현하기

    jQuery를 사용하지 않고 최상단 화면 이동 기능 구현하기 들어가며 제이쿼리(jQuery)를 사용하지 않고, 자바스크립트(JavaScript)만으로 화면의 최상단으로 이동할 수 있는 버튼을 만들 수 있다. 방법 1 : 스크롤 이동 효과를 주며 이동하기 ID가 "scrollup"인 버튼을 누르면 스크롤이 이동하는 효과와 함께 화면의 최상단으로 이동하도록 해보자. HTML JavaScript var scrollBtn = document.getElementById('scrollup'); // 10 밀리세컨드(ms) 마다 -50px 씩 스크롤된다. const scrollWindow = function () { if (window.scrollY != 0) { setTimeout(function () { wind..

  9. 2022.06.03 [CSS] 마우스 커서(Mouse Cursor)

    마우스 커서(Mouse Cursor) 들어가며 CSS에서 사용할 수 있는 마우스 커서의 종류에 대해 알아보자. CSS에서 마우스 커서는 다음과 같이 지정할 수 있다. #element:hover { cursor: mouse_cursor_value; } 마우스 커서의 종류

  10. 2022.05.31 [CSS] <span> 요소 줄 바꿈 하기

    요소 줄 바꿈 하기 들어가며 여러 개의 요소를 작성할 경우, 한 줄에 모두 표시되게 된다. Element 1 Element 2 Element 3 더보기 Element 1 Element 2 Element 3 간단하게 CSS 속성을 적용하여 이러한 요소가 한 줄마다 표시되도록 할수 있다. 방법 부모 요소와 자식 요소에 모두 display: block; 속성을 적용시켜준다. Element 1 Element 2 Element 3 #test { display: block; } #s1 { display: block; } #s2 { display: block; } #s3 { display: block; } 테스트 See the Pen Untitled by Sangsoon Kim (@starrykss) on CodeP..

  11. 2022.05.30 [Python] 괄호 매칭 검사 프로그램

    괄호 매칭 검사 프로그램 들어가며 스택을 활용하여 간단하게 괄호의 매칭 검사를 수행할 수 있다. 여는 괄호를 만나면 push 하고, 닫는 괄호를 만나면 pop 한다 는 규칙을 적용한 후, push 또는 pop 하는 과정에서 다음의 조건을 확인하면 된다. ① 닫는 괄호를 만났을 때 스택은 비어 있지 않아야 한다. ② 닫는 괄호를 만났을 때 추출한 괄호는 여는 괄호여야 한다. ③ ②를 만족해도 두 괄호의 종류(소괄호, 중괄호, 대괄호)가 같아야 한다. ④ 모든 수식의 처리가 끝나면 스택은 비어 있어야 한다. 열린 괄호라면 무조건 push 한다. 닫는 괄호일 때는 스택에서 하나를 꺼내서 현재 괄호와 짝이 맞는지 확인한다. if '(', '[', '{', '' 중 하나면 열린 괄호 pop() if 두 괄호의 쌍..

  12. 2022.05.13 [CSS] <body> 요소 가운데 정렬하기

    요소 가운데 정렬하기 간단하게 태그에 margin 속성을 적용하여 태그를 가운데로 정렬 할 수 있다. 방법 간단하게 margin: 0 auto; 속성을 적용해주면, 요소가 가운데로 정렬된다. body { margin: 0 auto; width: 1200px; } 적용 예

  13. 2022.05.12 [JavaScript] 특정 요소를 새로운 새로운 창으로 띄우기

    특정 요소를 새로운 창으로 띄우기 개요 자바스크립트를 이용하여 특정 요소를 새 창으로 띄울 수 있도록 할 수 있다. 코드 See the Pen PopUpElem (with JavaScript) by Sangsoon Kim (@starrykss) on CodePen.

  14. 2022.05.11 [CSS] 사파리(Safari) 기본 스타일 제거하기 (input, button, textarea)

    사파리(Safari) 기본 스타일 제거하기 (input, button, textarea) 개요 Mac OS, iOS에서 사파리(Safari) 브라우저를 통해 홈페이지에 접속할 경우, 사파리 기본 스타일이 적용되어 자신이 원한 스타일이 안나오는 경우가 있다. 이러한 특징은 , , 요소에서 두드러지게 나타난다. 이러한 사파리 기본 스타일은 아래와 같은 CSS 코드를 추가해줌으로써 없애줄 수 있다. 코드 input, textarea, button { appearance: none; border-radius: 0; -moz-appearance: none; -webkit-appearance: none; -webkit-border-radius: 0; -moz-border-radius: 0; } appearance ..

  15. 2022.05.09 [JavaScript] 디데이 카운터(D-Day Counter) 만들기

    디데이 카운터(D-Day Counter) 만들기 들어가며 자바스크립트를 이용하여 디데이 카운터를 만들어보자. 코드 See the Pen Untitled by Sangsoon Kim (@starrykss) on CodePen. 사파리(Safari) NaN 이슈 해결하기 사파리(Safari) 또는 IE8 이하의 브라우저를 사용할 경우, Date() 함수의 출력 결과가 NaN으로 표시된다. 이 문제를 해결하기 위해 입력값을 넣을 때, 다음과 같이 일(DD)과 시간(HH) 사이에 T를 넣어준다. new Date('2014-02-18T15:00:48') 혹은 다음과 같이 replace() 함수를 사용한다. new Date('2014-02-18T15:00:48'.replace(/\s/, 'T')). 참고 : htt..

  16. 2022.04.27 [JavaScript] 공백이 검색되지 않도록 하기 (검색창 구현)

    공백이 검색되지 않도록 하기 (검색창 구현) 개요 검색창(Search Bar) 기능을 구현할 때, 자바스크립트(JavaScript)를 이용하여 공백의 내용이 검색되지 않도록 설정할 수 있다. 방법 검색창의 내용이 비어있는지 확인하는 알고리즘이 들어있는 함수를 생성한다. getElementById() 함수를 사용하여 검색창(searchbar)에 있는 값(value)을 가져온 후, trim() 함수를 이용하여 공백('')을 기준으로 잘라준다. trim() 함수를 사용한 후의 값의 공백일 경우, 내용이 비어있다는 메시지와 함께 함수를 종료시켜준다. 그렇지 않을 경우 검색 작업을 수행시키도록 한다. 전송(submit) 버튼의 onclick 속성에 함수를 넣어준다. 사용 예 HTML JavaScript funct..

  17. 2022.04.20 [CSS] background-color 속성 없애기

    background-color 속성 없애기 개요 모든 요소가 background-color 속성으로 인하여 특정한 한 가지 배경색을 갖고 있을 때, 특정 요소의 배경색만 없애고 싶을 때가 있다. 방법 다음과 같이 배경색을 제거하고 싶은 요소의 background-color 속성을 transparent로 설정해준 후, !important 를 붙여서 스타일을 강제 적용시켜준다. #item { background-color: transparent !important; } 사용 예 요소에 마우스 커서를 올리면 모두 초록색 배경이 표현되지만, 예외적으로 요소 3에는 배경색이 표현되지 않는다. See the Pen Untitled by Sangsoon Kim (@starrykss) on CodePen.

  18. 2022.04.12 [JavaScript] Scroll Indicator 구현하기

    Scroll Indicator 구현하기 개요 자바 스크립트를 이용하여 Scroll Indicator 를 구현할 수 있다. 코드 See the Pen Untitled by Sangsoon Kim (@starrykss) on CodePen.

  19. 2022.04.02 [Python] 단순 연결 리스트(Singly Linked List) 프로그램

    단순 연결 리스트(Singly Linked List) 프로그램 # 단순 연결 리스트 프로그램 (삽입, 삭제, 검색) ## 클래스와 함수 선언 부분 ## class Node(): def __init__(self): self.data = None self.link = None def printNodes(start): current = start if current == None: return print(current.data, end = ' ') while current.link != None: current = current.link print(current.data, end = ' ') print() # 노드 삽입 함수 def insertNode(findData, insertData): global me..

  20. 2022.03.26 [Python] 다항식(Polynomial) 선형 리스트 표현과 계산 프로그램

    다항식(Polynomial) 선형 리스트 표현과 계산 프로그램 다항식(Polynomial) $P(x) = a + bx + cx^2 + dx^3 + \cdots + zx^n$ $n$ 차 다항식 $P(x)$ : 다항식(Polynomial) $a, b, c, d, \cdots, z$ : 계수(Coefficient) $x$의 $1, 2, \cdots, n$ : 지수(Exponent) 코드 방법 1 ## 함수 선언 부분 def printPoly(p_x): term = len(p_x) - 1 # 최고차항 숫자 = 배열 길이 - 1 polyStr = "P(x) = " for i in range(len(px)): coef = p_x[i] # 계수 if (coef >= 0): polyStr += "+" polyStr +..

  21. 2022.03.26 [Python] 선형 리스트(Linear List) 처리 프로그램

    선형 리스트(Linear List) 처리 프로그램 ## 함수 선언 부분 ## def add_data(friend): katok.append(None) kLen = len(katok) katok[kLen - 1] = friend # 선형 리스트에 데이터를 삽입하는 함수 def insert_data(position, friend): if position len(katok): print("데이터를 삽입할 범위를 벗어났습니다.") return katok.append(None) # 빈칸 추가 kLen = len(katok) # 배열의 현재 크기 for i in range(kLen - 1, position, -1): katok[i] = katok[i - 1] katok[i - 1] ..

  22. 2022.02.25 [HTML/CSS/JS] Scroll Indicator 만들기

    Scroll Indicator 만들기 화면의 스크롤에 따라 이동된 양을 표시하는 Scroll Indicator 를 다음과 같이 쉽게 만들 수 있다. Scroll Indicator Scroll Down to See The Effect We have created a "progress bar" to show how far a page has been scrolled. It also works when you scroll back up. It is even responsive! Resize the browser window to see the effect. Some text to enable scrolling.. Lorem ipsum dolor sit amet, illum definitiones no quo,..

  23. 2021.08.07 [Python] 파일 입출력 예제

    파일 입출력 예제 open('파일명', '형식') : 파일을 불러오는 함수 형식 r : 읽기 w : 쓰기 write(a) : 파일에 a 내용 쓰기 close() : 파일 입출력 해제 예제 사용자로부터 입력 받은 내용을 "text.txt" 파일로 저장하고, 찾고자 하는 문자열의 개수를 출력하는 프로그램을 작성하시오. def count_word(text, word): # 문자열을 텍스트 파일로 저장 text_save = open("text.txt", "w", encoding="UTF8") text_save.write(text) text_save.close() count = 0 # word를 세는 변수 word_length = len(word) # 문자의 길이 word_save = "" # 문자의 길이만큼만 ..

  24. 2021.05.28 [C++] STL로 해시 테이블(Hash Table) 만들기 (std::unordered_map, std::unordered_set)

    STL로 해시 테이블(Hash Table) 만들기 서론 C++의 STL을 이용하여 해시 테이블(Hash Table)을 구현할 수 있다. std::unordered_map과 std::unordered_set을 이용한다. 이 방법으로 해시 테이블을 구현할 경우 원소의 순서가 보장되지 않으며, 원소의 순서를 보장하도록 만들기 위해서는 std::unordered_multimap 또는 std::unordered_multiset을 이용하여 구현하면 된다. 코드 #include #include #include void print(const std::unordered_set& container) { for (const auto& element : container) { std::cout

  25. 2021.05.15 [C++] 조직 구조도 만들기 (이진 트리 이용)

    조직 구조도 만들기 (이진 트리 이용) 서론 트리(Tree) 자료구조를 이용하여 조직 구조도를 만들어보자. 이진 트리(Binary Tree)를 이용하고, 1명의 상사 직원 밑에 2명의 부하 직원을 둘 수 있다고 가정한다. 상사 직원이 없을 경우, 부하 직원을 추가할 수 없다. 코드 #include #include struct node { std::string position; node* first; node* second; }; struct org_tree { node* root; static org_tree create_org_structure(const std::string& pos) { org_tree tree; tree.root = new node {pos, NULL, NULL}; return t..

  26. 2021.05.08 [C++] 다양한 타입의 데이터 여러 개를 인자로 받아 공통 타입으로 변환하는 함수

    다양한 타입의 데이터 여러 개를 인자로 받아 공통 타입으로 변환하는 함수 반환하는 컨테이너는 모든 인자를 공통 타입으로 변환하여 저장함. 전체 원소를 빠르게 순회할 수 있어야 함. #include #include #include template auto build_array(Args&&... args) -> std::array { using commonType = typename std::common_type::type; return {std::forward((Args&&)args)...}; } int main() { auto data = build_array(1, 0u, 'a', 3.2f, false); for (auto i: data) { std::cout

  27. 2021.04.05 [코틀린] 기본 스레드 생성하기

    ■ 스레드 루틴 만들기 (Java) - Thread 클래스 상속받기 - Runnable 인터페이스 구현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // (1) Thread 클래스를 상속받아 구현하기 class SimpleThread: Thread() { override fun run() { println("Current Threads: ${Thread.currentThread()}") } } // (2) Runnable 인터페이스로부터 run() 메서드 구현하기 class SimpleRunnable: Runnable { override fun run() { println("Current Threads: ${Thread.currentThread()..

  28. 2021.04.03 [코틀린] 컬렉션의 순서와 정렬 예제

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 fun main() { val unsortedList = listOf(3, 2, 7, 5) // reversed: 뒤집힌 순서로 컬렉션 반환 println("reversed: " + unsortedList.reversed()) // sorted: 요소를 정렬한 후 정렬된 컬렉션 반환 println("sorted: " + unsortedList.sorted()) // sortedDescending: 내림차순 정렬 println("sortedDescending: " + unsortedList.sortedDescending()) // sortedBy: 특정 비교식에 의해 정렬된 컬렉션 반환 println("sortedBy: " + unsor..

  29. 2021.04.03 [코틀린] 컬렉션의 분리와 병합 예제

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 fun main() { val list1 = listOf(1, 2, 3, 4, 5, 6) val list2 = listOf(2, 2, 3, 4, 5, 5, 6, 7) // union: 두 List를 합침 (중복 요소는 하나만) println(list1.union(list2)) // plus: 두 List를 합침 (중복 요소 포함), + 연산자와 같음. println(list1.plus(list2)) // partition: 주어진 식에 따라 2개의 컬렉션으로 분리해 Pair로 반환 val part = list1.partition { it % 2 == 0 } println(part) // zip: 동일한 인덱스끼리 Pair를 ..

  30. 2021.04.03 [코틀린] 컬렉션 요소 처리와 검색 예제

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 fun main() { val list = listOf(1, 2, 3, 4, 5, 6) val listPair = listOf(Pair("A" , 300), Pair("B", 200), Pair("C", 100), Pair("D", 200)) val listRepeated = listOf(2, 2, 3, 4, 5, 5, 6) // elementAt: 인덱스에 해당하는 요소 반환 println("elementAt: " + list.elementAt(1)) // e..

728x90


📖 Contents 📖