본문 바로가기

전체 글640

7장 배열 1. 중간 점검 퀴즈(1)Quiz 1) n개의 요소를 가지는 배열의 경우, 첫 번째 요소의 번호는 무엇인가?: 0 Quiz 2) n개의 요소를 가지는 배열의 경우, 마지막 요소의 번호는 무엇인가?: n - 1 Quiz 3) 범위를 벗어나는 인덱스를 사용하면 어떻게 되는가? 즉, int a[10];과 같이 선언된 배열이 있는 경우, a[10]에 6을 대입하면 어떻게 되는가?: 배열 인덱스 범위 초과 오류가 생긴다.   2. 중간 점검 퀴즈(2)Quiz 1) 배열 a[6]의 요소를 1, 2, 3, 4, 5, 6으로 초기화int a[6] = {1, 2, 3, 4, 5, 6};  Quiz 2) 배열의 초기화에서 초기값이 배열 요소의 개수보다 적은 경우: 배열 요소보다 초기화 값이 적으면 나머지 요소는 0으로 초.. 2024. 10. 25.
6장 1. 종이접기#include #include #include int main(){ double height = 0.001; int count = 0; while(height   2. 디지털 시계#include #include #include int main() { int hour, min ,sec; hour = min = sec = 0; while(1){ system("cls"); printf("%02d: %02d: %02d", hour, min, sec); sec++; if(sec == 60) { min++; sec = 0; } if(min == 60) { .. 2024. 10. 25.
5장 조건문 1. 논리 연산자연산의미x && yx와 y가 모두 참이면 참, 그렇지 않으면 거짓x || yx나 y중에서 하나만 참이면 참, 모두 거짓이면 거짓!xx가 참이면 거짓, x가 거짓이면 참 중요한 것!C언어에서는 0을 제외한 나머지 값은 모두 참으로 간주한다. 따라서, -1도 참이 되고, 100도 참이 된다.  2. 단축 연산자AND 연산자의 경우, 여러 개의 피연산자 중에서 처음 피연산자의 값이 거짓이면 다른 연산자들의 값은 계산되지 않는다.if((2>3)&&(++x (++x 3)이 거짓이기 때문에!  3. if문에서 주의할 점if (score >= 90) printf("합격!"); printf("장학금!"); 이렇게 하면 아래의 장학금 출력문은 아무런 조건 없이 출력된다.  if( x > 0).. 2024. 10. 24.
4장 수식과 연산자 1. 나눗셈 연산자정수형 / 정수형 == 정수형(소수점 이하의 값은 버려진다.)#include int main() { int a = 10; int b = 3; int result = a / b; // 정수끼리 나누기, 소수점 이하 값은 버려짐 printf("정수형 나눗셈: %d\n", result); // 출력: 3 return 0;} 실수형 / 실수형 == 실수형#include int main() { float a = 10.0; float b = 3.0; float result = a / b; // 실수끼리 나누기 printf("실수형 나눗셈: %.2f\n", result); // 출력: 3.33 return 0;}   2. 증감 연산.. 2024. 10. 23.
3장 변수와 자료형 1. 변수 1. 변수의 정의: 변수란, 프로그램에서 값들이 저장되는 공간을 변수라고 한다.  2. 변수의 선언: 변수는 반드시 사용하기 전에 미리 선언을 해야한다.자료형 변수이름 = 초기값;int num = 0;char alpha = 'a';  3. 변수의 명명법 ★★★알파벳 문자와 숫자, 밑줄 문자로 이루어진다.이름의 중간에 공백이 들어가면 안된다.첫 번째 문자는 반드시 알파벳 또는 밑줄 문자이어야한다. (숫자를 첫 번째 문자로 사용은 불가능) 대문자와 소문자를 구분하여 서로 다른 것으로 취급한다. 따라서, 변수 index와 Index, INDEX는 서로 다른 변수이다.C언어에서 사용하고 있는 키워드(예약어)와 똑같은 이름은 허용되지 않는다. 4. 변수의 초기화변수를 초기화시키지 않으면?☞ 변수가 어디.. 2024. 10. 23.
2장 기초사항 보호되어 있는 글 입니다. 2024. 10. 23.
ch1 중요 문제 유형 2024. 10. 17.
데이터 프레임 필터링 방식 1. 기본적인 열 선택df[]는 기본적으로 열을 선택할 때 사용됩니다.# 하나의 열 선택df['column_name']# 여러 열 선택df[['column1', 'column2']]  2. loc[]: 명시적 인덱스 및 열 이름 사용 행 선택# 특정 인덱스(행) 선택df.loc[2012] # 2012년 데이터 선택 열 선택# 특정 열 선택df.loc[:, 'column_name'] # 모든 행에서 'column_name' 열만 선택 행과 열 동시 선택# 특정 인덱스와 열 동시 선택df.loc[2012, 'column_name'] # 2012년의 'column_name' 데이터를 선택 조건을 활용한 필터링# 조건을 활용하여 필터링df.loc[df['state/region'] == 'GA'] # 's.. 2024. 10. 17.
ch3 중요 문제 유형 10진수 -567에 대해서 (a) 부호 절대값 표현(b) 부호화된 1의 보수표현(c) 부호화된 2의 보수표현(d)2의 보수 표현을 이용하고 12비트를 사용할 떄 10진수의 최대 최소, 2진수의 최대 최소값을 찾으시오. 2024. 10. 16.
Quiz Session 2 - 15 왜 A0를 Serial input Left에 연결하고, A3를  Serial input Right에 연결을 할까? [Shift Left]| A₆ | A₅ | A₄ | A₃ | | A₂ | A₁ | A₀ | S(left) | [R2] [R1] 우선 Serial input의 개념에 대해서 알아야한다. Serial input이란 빈자리를 채우기 위함이다. 즉, 위의 레지스터에서 ShiftLeft를 통해서 기존의 A₀ 자리에 빈자리가 생겼다. 따라서, 이 빈자리를 Serial input채우는데, 보통 첫 레지스터의 가장 오른쪽 값이 연결된다. 따라서,  A₀ 를 연결해줄 수 있다.   [Shift Ri.. 2024. 10. 16.
[pandas] Combining Datasets 데이터를 사용하다보면 최신화된 데이터를 추가하거나 다른 데이터를 기존 데이터와 합치는 일이 많다. 이런 경우 pandas에서는 데이터 추가하는 여러 연산 메서드를 지원한다.  concat과 merge를 사용할 수 있는데, concat은 주로 행 추가 또는 열 추가를 결합하는데 사용된다. 또한, merge는 두 데이터 프레임을 공통 열 또는 공통 인덱스를 기준으로 결합한다.  concat: 주로 행 추가 또는 열추가를 결합하는데 사용하는 연산 메소드이다. 기본 값은 행 추가이며, axis='col'(2.2.2에서는 axis=1)을 하면 열 추가도 가능하다.  행 추가  열 추가   만약 인덱스가 중복되는 경우라면? concat은 index 중복여부를 검사하지 않는다. 이런 경우 verify_integrit.. 2024. 10. 16.
[pandas] Hierarchical Indexing(계층적 인덱싱) Hierarchical Indexing(계층적 인덱싱)은 여러개의 인덱스 또는 열을 가질 수 있는 기능이다.  이런 식으로 상위 계층에 a, b가 있고 하위 계층에 1, 2가 있는 인덱싱을 말한다. 이런 계층이 있는 인덱스를 다중 인덱스 (MultiIndex)라고 한다.     다중 인덱스 (MultiIndex) 생성1. 생성자 기반 생성  2. array를 통한 생성  3. tuple를 통한 생성 4. product를 통한 생성 이렇게 다중 인덱스 (MultiIndex)를 만들 수 있고 이 값을 데이터 프레임 생성할 때 index 값으로 넣어주면 된다.   물론, columns에 값을 넣어도 된다.    여기서 names는 행과 열 각각의 상위 계층, 하위 계층의 이름을 붙여준 것이이다.(사진 참고) .. 2024. 10. 15.
Coroutine(2) 2024. 10. 13.
Coroutine(1) import kotlinx.coroutines.*import java.lang.Thread.sleep/***fun main(){ GlobalScope.launch { println("Hello world!2") //코루틴에서 실행 } println("Hello world!1") //main thread에서 실행 sleep(1000)}* Hello world!1* Hello world!2**fun main(){ runBlocking { launch { //얌체 - 양보하지 않는다. println("Hello world!2") //코루틴에서 실행 } } println("Hello world!1") //main th.. 2024. 10. 13.
Array, Generic, Collection) Map Map은 딕셔너리와 비슷한데, 키와 값으로 이루어진 원소들의 모음이다. [불변 Map - mapOf()]map의 출력 방식fun main(){ val mapA: Map = mapOf("One" to 1, "Two" to 2, "Three" to 3) //키와 값을 동시에 출력 for ((k, v) in mapA) { println("($k, $v)") } //(One, 1) //(Two, 2) //(Three, 3) //키만 출력 println(mapA.keys) //[One, Two, Three] //값만 출력 println(mapA.values) //[1, 2, 3]}  키가 중복된 경우 ⭐️: 이전 값은 무시하고 새로.. 2024. 10. 13.
Array, Generic, Collection) Set Set은 순서가 없고, 중복을 허용하지 않는 원소들의 모음이다. 즉, 인덱싱이 불가하다.  [불변 Set - setOf()]Set의 size: 중복은 제거하고 요소 개수를 센다. val setA: Set = setOf(1,2,3,4,4,4)println(setA.size) // 4가 중복이기 때문에 개수는 4개    Set을 List로 변환: List로 변환하면 인덱싱도 가능해진다. val listA: List = setA.toList()println(listA) //[1, 2, 3, 4]     null 값이 있는 Set: ?를 사용해서 null 있어도 안전하게 처리해야한다.null도 중복을 허용하지 않기 때문에, 하나만 있다고 간주한다.val setA: Set = setOf("How", "Are", .. 2024. 10. 13.
Array, Generic, Collection) List Collection이란 여러 원소들의 모음이다. List는 순서가 있는 원소들의 모음이다. 즉, 인덱싱이 가능하다.  불변 List - listOf()[List와 관련된 표준 라이브러리들]val strList: List = listOf("red", "green", "blue")  sizeprintln(strList.size) //3 first, lastprintln("${strList.first()}, ${strList.last()}") //red, blue mapprintln(strList.map { it.length }) //[3, 5, 4]// 각 원소들의 길이 출력, map은 순환하는 것 filterprintln(strList.filter { it.length > 3 }) //[green, blu.. 2024. 10. 13.
Array, Generic, Collection) Generic 이터레이터 원소 출력fun main() { val intSequence: Iterable = listOf(1,2,3,4,5) val iter:Iterator = intSequence.iterator() while(iter.hasNext()){ //다음 원소가 없을 때 까지 val item = iter.next() println(item) // 1 2 3 4 5 }} 콜렉션fun main() { val intCollection: Collection = listOf(1,2,3,4,5) println(intCollection.size) //5 println(intCollection.isNotEmpty()) //true println(intCo.. 2024. 10. 13.
1~5장 교수님 블로그 1장코틀린: 진법 변환 구현 코틀린: 진법 변환 구현십진수 123을 8진수로 어떻게 변환할까요? toString(radix:Int) 함수를 사용하면 됩니다. 아주 쉽죠!fun main() { val x: Int = 123 println("$x is ${x.toString(8)} in octal representation")}라이브러리를 사용하지 않고 직접yshong60.tistory.com코틀린: package와 import(updated) 코틀린: package와 import(updated)쉽게 다가가는 최신 프로그래밍: 코틀린 - 1.2.2 라이브러리에서 import문에 대한 보충 설명입니다. 패키지(package)의 영어 단어 뜻은 꾸러미(parcel), 상자(box)이지만, 프로그래밍 언어에서 패.. 2024. 10. 12.
it과 this it: it은 람다식에서 단일 매개변수를 참조할 때 사용한다. val numbers = listOf(1, 2, 3, 4, 5)// numbers의 각 요소를 it으로 참조numbers.forEach { println(it) // 여기서 it은 리스트의 각 숫자를 가리킴}   this: this는 클래스 내부에서 자기 자신을 가르킬 때 사용한다. 주로 객체의 프로퍼티나 메서드를 참조할 때 사용한다.class Person(val name: String) { fun introduce() { println("My name is ${this.name}") // this는 현재 객체인 Person을 가리킴 }}val person = Person("Kim")person.introduc.. 2024. 10. 12.
Array, Generic, Collection) Array(2) - 배열 관련 연산 이번에는 배열과 관련된 연산들에 대해서 배워보자.배열 객체 복사배열 원소 추가배열 원소 선택(slice)배열 원소 순환(map)배열 정렬기본적으로 연산관련 메소드는 List를 대상으로 만들어진 것이기 때문에 Array의 연산을 하려면 "메소드Array" 형식으로 진행해야한다.  배열 객체 복사fun main() { val origanlArr = arrayOf(1, 2, 3) val arr1 = origanlArr // 배열 객체 자체를 복사 val arr2 = Array(origanlArr.size) { i -> origanlArr[i] } // 배열의 사이즈와 연산을 사용 val arr3 = origanlArr.clone() // 배열 객체를 복사하는 메서드 사용}  배열.. 2024. 10. 11.
Array, Generic, Collection) Array(1) - 배열의 생성 배열은 순서를 갖고있다. 따라서 정수 인덱싱이 가능하다.배열을 생성하는 방법은 총 3가지가 있다. arrayOf(), Array() + 람다식, 타입 + ArrayOf()   arrayOf()var/val 배열명: Array = arrayOf("", "", "")//타입은 생략가능var/val 배열명 = arrayOf("", "", "")  실제 사용 예시는 아래와 같다.fun main() { val strArr = arrayOf("R", "G", "B") strArr.forEachIndexed{ i, str -> print("strArr[$i] = $str, ")} // strArr[0] = R, strArr[1] = G, strArr[2] = B, }      Array() + 람다식.. 2024. 10. 11.
Class(2) - 범위 함수 범위 함수란?Kotlin에서 객체를 특정 범위(scope) 내에서 처리할 수 있게 도와주는 함수로, 객체의 컨텍스트에서 작업을 수행하는 간결한 방법을 제공한다. 주로 코드의 가독성을 높이고 객체를 효율적으로 처리하기 위해 사용된다.  범위함수에는 let, also, apply, with, run이 있다. let: 지정된 값에 대한 변환 작업을 수행하고, 결과를 반환한다.also: 지정된 값을 그대로 반환하면서, 부수적인 작업(로깅, 디버깅 등)을 수행한다. 주로, 객체를 참조하는 목적으로 사용apply: 객체의 속성을 변경하는 작업을 하고, 객체 자체를 반환한다. 주로, 객체를 참조하는 목적으로 사용with: 특정 객체에 대해 여러 작업을 수행하고, 결과를 반환한다.run: 블록 안에서 객체의 작업을 수.. 2024. 10. 11.
Class(2) - data class data class란?데이터를 저장하고 다루는 용도로 특별하게 설계된 클래스이다. 일반적인 클래스와는 다른 몇가지 자동화된 기능을 제공한다.주로 값 객체를 만들 떄 유용하다.  일반 클래스에도 equals, hashCode메소드가 있는데 뭐가 다른가?일반 클래스는 해당 값들의 주소를 비교한다. 따라서 값이 같아도 주소가 다르면 다르다고 판단한다. 하지만 data 클래스는 값을 비교하기ㄷ 때문에 주소가 달라도 값이 같다면 같다고 판단한다.  data class - toString() data class Fruit(var name: String, var sciName: String, var calories: String)fun main(){ val apple = Fruit("Apple", "학명: Ma.. 2024. 10. 11.
Class(2) - 클래스의 기본 메소드 정의 클래스의 기본 메소드를 재정의할 수 있다. toString, equals, hashCode   1. toString class Person(var name: String, var age: Int)fun main(){ val kim = Person("Kim", 18) println(kim) //Person@1be6f5c3}  원래는 이렇게 객체를 출력하면 객체이름과 이상한 값이 나온다. 이걸 toString() 메소드를 재정의해서 출력해보자.   class Person(var name: String, var age: Int) { override fun toString(): String { return "Person(name='$name', age=$age)" }}fun ma.. 2024. 10. 11.