-
원하는 게 있으면 주문을 말해봐~ 디딩 보딩 디보디보딩🎶
App
-
[Compose] LazyColumn(LazyRow)과 Lazy를 중첩하는 법(Nested LazyColumn)
LazyColumn(LazyRow)란? 기존의 recyclerView를 대체하는 Compose UI이다. 항목의 수가 많거나 길이를 알 수 없는 목록을 특정 뷰로 반복하여 리스트로 보여줘야 할 때 사용한다. recyclerView를 사용해본 사람들이라면 어댑터를 연결하고 ViewHolder를 생성하는 과정이 굉장히~~ 귀찮다. 그런데 LazyColumn을 사용하면 이 복잡한 과정이 모두 필요가 없다. 굳굳 사용법 @Composable private fun courseLazyView(courses: List) { LazyColumn( modifier = Modifier .padding(start = 20.dp, top = 30.dp, end = 20.dp, bottom = 20.dp) ) { items(c..
2023.12.14
-
[Compose] 라디오 버튼 형식으로 View 출력하기
개발 요구사항최근 3일 내(오늘, 내일, 모레) 식단을 식사 시간대별로 분류하여 출력오늘, 내일, 모레 버튼을 라디오 버튼 형식으로 구현각각의 버튼을 클릭하면 상응하는 날짜의 식단을 Text로 출력 개발 내용BtnDateView : 라디오 버튼을 구현한 파일MainActivity : 라디오 버튼의 현재값을 받아 ContentView에 전달하는 역할ContentView : 라디오 버튼의 현재값에 따른 출력 파일selectedDay라는 변수 위주!요런 느낌 DateEnumenum class DateEnum(val date:String) { TODAY("오늘"), TOMORROW("내일"), AFTER_TOMORROW("모레")} BtnDateView라디오 버튼을 구현한 파일기본 라디오 버..
2023.12.07
-
아람별 개발 일지(Compose kotlin app)
아람별은 경상국립대학교 학생생활관인 '아람관'의 식단 제공 서비스 아람별은 이미 web과 ios 앱으로 제공이 되고 있는 서비스이다. AppStore https://apps.apple.com/kr/app/%EC%95%84%EB%9E%8C%EB%B3%84/id6446250930 Web http://arambyeol.kro.kr 아람별 아람별은 아람관 식단 정보를 알려주는 앱입니다. 오늘, 내일, 모레 아람관 식단을 쉽게 확인하세요 ! 앱뿐만 아니라, 위젯으로도 간편하게 확인할 수 있습니다. apps.apple.com AramByeol 아람관 별점을 매겨보자! arambyeol.kro.kr 내가 맡은 것은 안드로이드 앱 개발! 개발 내용 최근 3일 내(오늘. 내일, 모레) 식단을 식사 시간대별로 분류하여..
2023.12.06
-
[Kotlin] HiltViewModel이란? (with Compose)
💢 Hilt는 Android에서 의존성 주입(Dependency Injection)을 쉽게 구현할 수 있게 해주는 라이브러리이다. 프로젝트 내에서 수동 DI를 사용하는 상용구 코드를 줄여주며, 모든 Android 구성 요소에 컨테이너를 제공하고 컨테이너의 수명 주기를 자동으로 관리한다.Dependency Injection은 구성요소 간의 의존 관계가 내부가 아닌 외부를 통해 정의되게 하는 디자인 패턴 중 하나이다. 목적은 객체를 생성하고 사용하는 관심사를 분리하는 것. 프로젝트 내에서 MVVM 패턴과 Compose Navigation을 사용했다. ViewModel을 View에 전달하는 과정에서 Hilt를 사용하지 않으니 MainActivity 혹은 NavigationGraph 내에서 ViewMode..
2024.07.28
-
[디자인 패턴] MVVM이란? (With compose)
정의MVVM(Model-View-ViewModel) 패턴은 애플리케이션의 구성요소를 세 가지 역할로 구분한 패턴 Model : 애플리케이션의 데이터인 테이터베이스, 상수, 변수 등을 의미 - 다루게 될 데이터 View : 모델을 기반으로 사용자가 볼 수 있는 화면 - 시각적인 요소 ViewModel : View와 Model을 잇는 역할 - Model이 가지고 있는 정보를 View에 보여지는 값들로 변경 동작 순서데이터 요청 : View가 사용자의 action을 받아 ViewModel에 데이터를 요청데이터 갱신 : ViewModel은 Model에 데이터를 요청하고, Model은 DB나 네트워크에서 데이터를 가져와 ViewModel에게 반환데이터 가공 및 전달 : ViewModel은 받은 데이터를 가..
2024.07.23
Algorithm
-
[백준/c++] 2493번 탑 풀이(골드5)
백준에 'BaaaaaaaaaaarkingDog'님이 알고리즘 종류별로 문제집을 만들어 놓으신 게 있어서 이 커리큐럼을 따라 알고리즘 종류별로 하나씩 공부하는 중이다. '0x'라고 검색한 후 문제집 탭을 클릭하면 쉽게 찾을 수 있다. 연결리스트 문제를 다 풀고 오늘은 스택 문제를 풀어볼 차례이다. 요즘 계속 실버 난이도의 문제만 풀다가 골드 문제가 나와서 당황했지만 언제까지 쉬운 문제만 풀 수 없으니 도전! 문제 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.ac..
2024.01.12
-
[백준/c++] 1158번 요세푸스 풀이(실버4)
문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 1부터 n의 연속된 자연수 배열을 원형큐 형태로 배치하였을 때 k번째 숫자를 계속 제거해야 하는 문제이다. 리스트에서 중간 숫자를 계속 삭제해야 하는 문제이기 때문에 c++의 list(linked list)를 사용하였다. 알고리즘은 매우 간단하게 짰다. 1부터 n의 리스트를 생성한 후, 리스트의 값이 전부 사라질 때까지 반복문을 돌려 k번째 반복일 때 iter가 가리키는 출력과 동시에 삭제했다. 코드 #include #include #include using namespace ..
2024.01.08
-
[백준/c++] 5397번 키로거 풀이(실버2)
문제 https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 풀이 이 문제는 배열의 중간에서 삽입, 삭제가 빈번하게 일어난다. 따라서 vector나 deque보다 list를 사용하는 것이 효율적이다. c++에서 list는 linked list를 의미한다. 그래서 배열의 중간 부분을 삽입, 삭제할 때 다른 연속적인 메모리 리스트보다 효율적이다. 먼저 문자열을 입력받은 뒤, 입력받은 문자열의 모든 요소를 순차적으로 탐색하여 list에 삽입, 삭제한..
2024.01.08
New
-
[JAVA] BluetoothGatt로 BLE 사용하기(2) - 데이터 전송
🟨 전송데이터를 전송하려면 serviceUUID와 characteristicUUID가 필요하다.Service, Characteristic이 둘은 블루투스 기기가 가지고 있는 기능 같은 것이다그냥 특성(characteristic)을 그룹으로 모아놓은 것이 Service이다Service는 특정 기능이나 데이터를 제공하는 논리적 그룹Characteristic은 특정 기능이나 데이터 🔸 BluetoothActivity.java블루투스를 관리하는 파일에 이렇게 블루투스 전송 함수를 만들어준다.보내고자 하는 값을 byte 형식으로 변경해서 블루투스 기기(Peripheral)로 전송하게 된다.// 블루투스 전송 함수public void sendCommand(String command) { try { ..
2025.02.04
-
[JAVA] BluetoothGatt로 BLE 사용하기(1) - 스캔 및 연결
❕ Bluetooth GattAndroid에서 BLE를 다루는 프레임워크BLE(Bluetooth Low Energy)블루투스 통신의 단점이었던 전력소비를 보완한 저전력 블루투스 본문은 BLE 기기의 스캔과 연결에 대한 구현 방법을 담고 있다. 다음 글에서 앱 -> BLE 기기 데이터 전송 및 블루투스 연결 끊김 감지, BLE 기기 -> 앱 데이터 전송을 담을 예정이다. 🟨 구현🟠 권한 설정권한은 아래 링크에서 각자 필요한 것을 찾아 선언해주면 됨https://developer.android.com/develop/connectivity/bluetooth/bt-permissions?hl=ko&_gl=1*hi7g9s*_up*MQ 블루투스 권한 | Connectivity | Android Deve..
2025.01.14
-
[안드로이드] Unknown Kotlin JVM target: 21 오류 해결법
🔒 오류와 원인 안드로이드 스튜디오를 업데이트 했더니 기존 프로젝트에서 이런 오류가 생겼다.원인은 Kotlin에서 설정한 JVM 버전이 현재 Gradle 또는 Kotlin 플러그인에서 지원되지 않기 때문에 발생한다고 한다. 확인해보니 Gradle JDK가 21로 되어 있었다. 🗝️ 해결법 아래와 같이 JDK를 17로 변경해주고 module 단위 gradle 파일도 수정해주면 해결~! 위처럼 다운그레이드 하지 않고 21 버전으로 업그레이드를 시도해보았으나, 변경해야 할 부분이 훨씬 더 많고 수정을 하면서 기존 프로젝트와 충돌할 가능성이 컸다. 결국 compose compiler version을 수정하는 부분에서 공식 문서를 보아도 이해하지 못 하게 되면서 포기... 그냥 다운그레이..
2025.01.04
-
[iOS] 음성을 인식하여 텍스트로 변환하기(STT, Speech to Text) - SwiftUI
버튼을 누르고 있는 동안 녹음이 되고 녹음된 문장을 텍스트로 출력하는 방법을 정리해보았다. 🟨 info 파일에서 권한 추가 Privacy - Microphone Usage DescriptionPrivacy - Speech Recognition Usage Description 위 두 가지 권한을 추가해주면 된다.여기서 만약 배포를 위한 앱이라면 Value 값에 이 권한이 앱의 어떤 부분을 위한 접근인지 자세히 적어주면 좋다. 안 하면 애플 앱 심사에서 리젝당하기 때문ㅎㅎㅎㅎ^^... 🟨 코드 설명자세한 코드를 보기 전에 주요 클래스와 메소드의 설명을 간략하게 적어보았다. 🔸 SpeechReconizer 클래스ObservableObject를 상속받아 SwiftUI와 함께 사용할 수 있도록 설계..
2024.11.26
-
[iOS app 배포] xcode에서 빌드 파일 생성하기
먼저 xcode에 접속하여 시뮬레이터 선택창을 클릭하여 [Any iOS Device (arm64)]를 선택한다. 그 다음, 앱 이름을 클릭한 후 [Edit Scheme...] 버튼을 클릭한다. Build Configuration이 [Debug]로 되어 있다면 [Release]로 바꿔준 다음 [Close] 버튼을 클릭한다. [product] - [Archive]를 클릭한다. 그러면 아래와 같은 창이 뜨면서 방금 따끈따끈하게 생성된 빌드 파일이 있다. [Distribute App] 클릭! [App Store Connect] 클릭 후 [Distribute]를 클릭하면 빌드가 된다!! 이제 apple Store Connect로 돌아가 빌드 파일을 추가 버튼을 클릭하여 방금 올라간 파일을 선택하기..
2024.11.14
-
[iOS app 배포] app store connect에서 iOS 앱 배포하기
본 글은 기업용 계정 중심으로 작성되었으나 아마 개인용 계정에서 참고하여도 큰 무리는 없을 것으로 예상합니당! 🟨 App Store connect 접속 https://appstoreconnect.apple.com/apps에 접속한다. 만약에 로그인 창이 뜨면 로그인한다.그러면 아래와 같은 창이 뜰 것이다. 여기서 앱 추가 버튼 클릭! 🟨 신규 앱 등록 페이지 빈 칸을 채워넣으면 된다. 회사 이름은 멤버십을 결제할 때처럼 영어로 작성할 필요는 없다. 여기서 번들 ID는 파란색으로 ‘인증서, 식별자 및 프로필’ 버튼을 클릭하면 쉽게 등록할 수 있다.이 글을 클릭하면 번들 ID를 등록하는 방법을 정리해놓은 글을 확인할 수 있다. SKU는 xcode를 열어 Bundle identifier을 ..
2024.11.13
-
[iOS app 배포] 인증서, 식별자 및 프로필에서 번들 ID 등록하기
신규 앱을 등록할 때, 번들 ID를 추가해야 하는 칸이 있다. 오늘은 이 방법을 포스팅해볼려고 한다. 일단 파란색으로 써져 있는 인증서, 식별자 및 프로필 버튼을 클릭한다. 그러면 아래와 같은 페이지로 이동한다. Description은 앱 ID의 설명을 적는 칸이고, 영어로만 작성 가능하다.Bundle ID는 xcode에서 bundle identifier을 찾아 똑같이 작성해주면 된다. 잘 모르겠다면 아래 사진 참고! 작성이 끝났으면 우측상단에 있는 continue와 register 버튼을 차례로 클릭한다. 아래 사진과 같이 뜬다면 등록이 완료된 것이다. 이제 원래 앱 생성 페이지로 돌아와 번들 ID를 추가하면 된다.만약 셀렉 박스에 아무것도 뜨지 않는다면 새로고침을 한 번 해보도록!
2024.11.12
-
[iOS app 배포] xcode 시뮬레이터로 스크린샷 캡처하기
현재 apple program developer에 앱을 등록하기 위해서는 6.9, 6.5 디스플레이의 스크린샷을 필수적으로 등록해야 한다. 내 앱 같은 경우에는 아이패드도 지원하기 때문에 13 디스플레이 스크린샷도 필요했지만 다른 사람들의 경우엔 잘 모르겠다! 스크린샷은 xcode의 시뮬레이터 캡처를 사용하면 쉽게 할 수 있다.6.9 디스플레이 : iphone 16 pro max6.5 디스플레이 : iphone 12 pro max13 디스플레이 : ipad 13 pro 시뮬레이터 스크린샷 캡처는 [file] - [save Screen]을 통해 할 수 있다. 만약 시뮬레이터 선택창에서 위 기종이 보이지 않는다면 아래 사진처럼 쉽게 추가할 수 있다.[manage Run Desinations] 버튼을 클..
2024.11.08
-
[SwiftUI] Image 터치 눌렀다가 떼었을 때 변화주기(up, down event)
어떤 버튼을 꾸욱 눌렀을 때, 터치했을 때부터 손을 떼기까지 녹음하는 기능을 구현하고 싶었다. 그러나 SwiftUI up, down event를 구글링 해보았을 때, gesture를 활용한 터치 이벤트만 잔뜩 서치되었는데 이 친구로는 내가 원하는 기능을 구현할 수 없었다(있을 수도 있다, 내가 못 하는 것일 수도...).처음엔 gesture를 활용해볼려고 이것저것 사용해보고 수정도 해봤지만 실패했고, 새로운 것을 찾아야 했다. 그렇게 찾은 것이 아래 본문에 작성될 것이다. 🔵 구현UIView의 터치 이벤트를 overriding하면 간단하게 LongPressButton을 구현할 수 있다. 우선 아래처럼 custom View를 하나 만들어준다. 크게 수정할 것이 없다면 그냥 이대로 복붙해도 될 듯!imp..
2024.10.25
-
[Core Bluetooth] iOS BLE 통신 프레임워크(with swiftUI)
이 글은 내가 함수 하나하나 뜯어 보면서 공부를 하지 않았기 때문에 꼭 필요한 함수와 클래스 위주로 설명이 될 예정이다. 그러니 자세한 공부를 하고 싶다면 공식문서나 아래 참고 링크를 확인하는 것이 좋을 듯... 🟨 Core Bluetoothios에서 블루투스를 다루는 프레임워크 🌼 BLE(Bluetooth Low Energy)블루투스 통신의 단점이었던 전력소비를 보완한 저전력 블루투스Core Bluetooth는 BLE를 쉽게 사용할 수 있도록 애플에서 제공하는 프레임워크임블루투스와 애플리케이션이 통신하는데 필요한 다양한 클래스를 제공 현재 iOS는 기존 블루투스 방식은 제공하지 않고 오직 BLE 방식만을 제공하고 있다External Accessory Framework를 통해 Classic Blue..
2024.10.25
-
[Kotlin] HiltViewModel이란? (with Compose)
💢 Hilt는 Android에서 의존성 주입(Dependency Injection)을 쉽게 구현할 수 있게 해주는 라이브러리이다. 프로젝트 내에서 수동 DI를 사용하는 상용구 코드를 줄여주며, 모든 Android 구성 요소에 컨테이너를 제공하고 컨테이너의 수명 주기를 자동으로 관리한다.Dependency Injection은 구성요소 간의 의존 관계가 내부가 아닌 외부를 통해 정의되게 하는 디자인 패턴 중 하나이다. 목적은 객체를 생성하고 사용하는 관심사를 분리하는 것. 프로젝트 내에서 MVVM 패턴과 Compose Navigation을 사용했다. ViewModel을 View에 전달하는 과정에서 Hilt를 사용하지 않으니 MainActivity 혹은 NavigationGraph 내에서 ViewMode..
2024.07.28
-
[디자인 패턴] MVVM이란? (With compose)
정의MVVM(Model-View-ViewModel) 패턴은 애플리케이션의 구성요소를 세 가지 역할로 구분한 패턴 Model : 애플리케이션의 데이터인 테이터베이스, 상수, 변수 등을 의미 - 다루게 될 데이터 View : 모델을 기반으로 사용자가 볼 수 있는 화면 - 시각적인 요소 ViewModel : View와 Model을 잇는 역할 - Model이 가지고 있는 정보를 View에 보여지는 값들로 변경 동작 순서데이터 요청 : View가 사용자의 action을 받아 ViewModel에 데이터를 요청데이터 갱신 : ViewModel은 Model에 데이터를 요청하고, Model은 DB나 네트워크에서 데이터를 가져와 ViewModel에게 반환데이터 가공 및 전달 : ViewModel은 받은 데이터를 가..
2024.07.23
-
학원 강사 4개월 차 후기(2)
처음 이 일을 하게 됐을 때부터 지금까지도 나는 학생들을 어떻게 대하는 것이 좋을지 어떤 방식으로 수업을 하는 것이 아이들에게 가장 많은 도움이 될 지 고민이다.초반엔 재밌는 선생님이 되고 싶었다. 학창 시절을 떠올려보면 재밌는 수업에는 항상 집중을 하게 됐다. 그래서 세대차이가 크지 않은 점을 이용하여 유행하고 있는 밈을 주고받으며 친해지려 했다. 그렇지만 난 그닥 웃긴 사람이 아니었고 아이들에게 난 그저 젊은 선생님이었던 거 같다. 재밌는 수업을 할려고 나름 애썼지만 쪼렙 강사인 나는 재밌거나 수업을 하거나 둘 중 하나밖에 할 수 없었다... 좀 친해져서 장난을 막 주고 받을 수 있게 된 친구들은 점점 선을 넘으며 수업 흐름을 제 입맛대로 가져가려 했고, 아닌 친구들은 어색하게 수업만 진행하는 게 겨..
2024.05.03
-
학원 강사 4개월 차 후기(1)
올해 1월부터 학원에서 초등학생들에게 엔트리와 파이썬을 가르치는 아르바이트를 시작하였다. 현재는 이 일을 시작한 지 4개월차에 접어들었으며, 이 글은 수업과 월말평가 그리고 일을 하면서 느낀 점을 담을 것이다. 처음엔 엔트리 수업 2개로 시작했으나, 현재는 학생 수도 늘고 파이썬 수업도 담당하게 되면서 7개의 수업을 하고 있다. 이로 인해 다양한 성격과 실력의 친구들을 만나게 되었고, 몇 가지 느낀 점이 있다. 나이가 코딩에 지대한 영향을 미치지는 않는 것 같다. 지인들에게 초등학생을 대상으로 코딩을 가르친다고 하면 대다수가 학생들의 나이에 놀란다. 우리 어릴 적엔 거의 없었던 일이기도 하고, 어린 나이인 친구들이 배우기엔 어려울 수 있다고 생각하기 때문이다.내가 가르치는 친구들은 대부분 4학년에서 6학..
2024.04.30
-
[github] github fork하는 법(main 이외의 branch에서 clone하기)
git 경험이 없는 팀원들과 팀플을 하기 위해 노션에 작성했던 github 사용방법 블로그에도 올려보기! github fork 뜨기 하고싶은 github 원본 저장소에서 fork 버튼 누르기 만약 main 브랜치 이외의 다른 브랜치도 받아오고 싶다면 Copy the main branch only 해제 create fork 버튼 클릭 로컬 폴더 생성 원하는 디렉터리에 폴더 생성(나는 주로 찾기 쉽게 바탕화면에 추가하는 편!) 생성한 폴더에 오른쪽 마우스 클릭 git bash here 클릭 터미널 창에 아래 명령어 입력 git init git clone https://github.com/자신의 github id/repo 이름.git 만약 main이 아닌 다른 브랜치에서 clone하고 싶다면 git clone..
2024.02.03
-
[React] 플랫폼 비지니스 1차 팀플 후기
USG에서 진행하는 플랫폼 비지니스 오픈메타 캠퍼스에서 하반기 과정으로 팀프로젝트를 진행한다.총 3차시로 구성되어 있고, 오늘 1차 프로젝트를 마무리지었다. 1차 프로젝트는 약 2주 동안 진행되었다. 짧은 기간 내에 기획, 설계, 개발, 배포를 끝내야 했다. 사실 우리팀은 최종 배포까지는 시간 부족으로 실패... 주제지역 정보 플랫폼nav바에서 지역 리스트를 보여주고 지역을 클릭하면 해당 지역의 업소들을 명소, 카페, 음식점, 놀거리로 구분하여 보여준다. 업소를 클릭하면 영업시간, 주소 등 자세한 정보를 볼 수 있다.회원가입은 업주와 고객으로 role을 나누어 진행하였으며, 로그인된 role에 따라 기능이 조금 달라지게 구성했다. 역할나는 프론트를 맡아 리액트로 개발을 진행하였다. 졸작을 하면서 리액트를..
2024.02.01
-
[백준/c++] 2493번 탑 풀이(골드5)
백준에 'BaaaaaaaaaaarkingDog'님이 알고리즘 종류별로 문제집을 만들어 놓으신 게 있어서 이 커리큐럼을 따라 알고리즘 종류별로 하나씩 공부하는 중이다. '0x'라고 검색한 후 문제집 탭을 클릭하면 쉽게 찾을 수 있다. 연결리스트 문제를 다 풀고 오늘은 스택 문제를 풀어볼 차례이다. 요즘 계속 실버 난이도의 문제만 풀다가 골드 문제가 나와서 당황했지만 언제까지 쉬운 문제만 풀 수 없으니 도전! 문제 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.ac..
2024.01.12
-
[백준/c++] 1158번 요세푸스 풀이(실버4)
문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 1부터 n의 연속된 자연수 배열을 원형큐 형태로 배치하였을 때 k번째 숫자를 계속 제거해야 하는 문제이다. 리스트에서 중간 숫자를 계속 삭제해야 하는 문제이기 때문에 c++의 list(linked list)를 사용하였다. 알고리즘은 매우 간단하게 짰다. 1부터 n의 리스트를 생성한 후, 리스트의 값이 전부 사라질 때까지 반복문을 돌려 k번째 반복일 때 iter가 가리키는 출력과 동시에 삭제했다. 코드 #include #include #include using namespace ..
2024.01.08
-
[백준/c++] 5397번 키로거 풀이(실버2)
문제 https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 풀이 이 문제는 배열의 중간에서 삽입, 삭제가 빈번하게 일어난다. 따라서 vector나 deque보다 list를 사용하는 것이 효율적이다. c++에서 list는 linked list를 의미한다. 그래서 배열의 중간 부분을 삽입, 삭제할 때 다른 연속적인 메모리 리스트보다 효율적이다. 먼저 문자열을 입력받은 뒤, 입력받은 문자열의 모든 요소를 순차적으로 탐색하여 list에 삽입, 삭제한..
2024.01.08
-
it 학원 강사 알바 1일차 후기(with 피시방 알바)
알고학원에서 초등생을 대상으로 엔트리를 가르치게 되었다. 원래는 오늘부터 바로 수업을 진행하기로 했었으나, 원장님께서 수업을 한 번 참관해보고 진행하라고 하셨다. 오늘 수업을 참관하여 수업 진행 과정이나 참고 사항, 말투나 제스처 같은 것들을 유심히 지켜본 후 메모해왔다. 수업 진행 과정 엔트리 실행 학습목표 읽어보기 작품 계획하기 실습 작품 공개로 전환하기 참고 사항 질문 유도(학생들이 스스로 답을 찾아낼 수 있게) 예시를 들어서 설명(학생들이 이해하기 쉬울만한 주제로) 이론보다는 실습 위주(초등생을 대상으로 하다보니 이론을 지루해하고 이론만으론 이해하지 못 하는 경우가 다반사인 듯) 재미적 요소 포함(학생들이 좋아할만한 개그 요소를 조금씩 포함해주는 게 집중력 향상에도 도움이 될 듯) 새로운 블록을 ..
2024.01.04