Developing Myself Everyday
1240. [S/W 문제해결 응용] 1일차 - 단순 2진 암호코드 [D3] by Java
SWEA 2023. 11. 16. 12:23

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제와 관련된 내용은 위의 링크에서 확인할 수 있습니다. 나의 풀이 이 문제는 크게 3 단계로 문제가 구성되어 있다고 생각할 수 있습니다. 단계 1 - 직사각형 배열에서 암호코드 정보 찾기 문제에서 주어지는 직사각형 배열에서 필요한 암호코드는 사실 단 한줄입니다. 그렇기 때문에 직사각형 배열을 쭉 읽어 나가다가, 1이 포함된 줄이 있으면 해당 줄로만 암호 코드 계산할 수 있습니다. 단계 2 - 암호코드 정보에서 암호코드 찾기 단계 1에서 얻은 암호코드 정보는 아래와 같을 것입니다. 0000000000000001110110110001011101101100010110..

1208. [S/W 문제해결 기본] 1일차 - Flatten [D3] by Java
SWEA 2023. 11. 15. 16:12

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제와 관련된 내용은 위의 링크에서 확인할 수 있습니다. 나의 풀이 이 문제를 해결하기 위해서는 각 덤프에서 가장 높은 박스와 가장 늦은 박스를 찾아야 합니다. 문제에 접근할 때에는 시간을 생각하지 않고 브루트포스하게 찾는 방식으로 진행했습니다. import java.io.*; import java.util.*; class Solution { public static void main(String args[]) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System..

1206. [S/W 문제해결 기본] 1일차 - View [D3] by Java
SWEA 2023. 11. 15. 13:40

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제에 대한 내용은 위의 링크에서 확인하실 수 있습니다. 나의 풀이 이 문제는 브루트포스로 해결했습니다. 건물을 완전탐색하면서, 해당 건물 위치에서 -2, -1, 1, 2에 위치한 건물의 높이를 비교하여 조망권이 확보되었는지 확인하였습니다. import java.io.*; import java.util.*; class Solution { public static void main(String args[]) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in..

article thumbnail
안드로이드의 Doze와 App Standby
Android 2023. 11. 8. 17:06

사진: Unsplash의Gregory Pappas 안드로이드는 Doze와 App Standby 이 2가지의 절전 기능을 통해, 장치가 전원과 연결되어 있지 않게 하는 방법을 제공하고 있습니다. Doze는 백그라운드 CPU 및 네트워크 활동을 지연시켜 배터리 소모를 줄입니다. App Standby는 최근에 사용하지 않은 앱의 백그라운드 네트워크 활동을 지연시킵니다. 안드로이드의 앱을 개발하다 보면, 이 2가지의 모드에서 동작해야 하거나, 동작할 필요가 없을 때에 동작하지 않게 하는 등의 설계를 해야할 때가 있습니다. 그래서 이 2가지의 절전 기능을 알아보고 공부해보고자 합니다. Doze 모드 핸드폰을 사용하지 않아서 가만히 냅두거나, 전원 버튼을 누르면 핸드폰은 Doze 모드가 됩니다. Doze 모드에서는..

article thumbnail
HTTP와 TCP/IP 그리고 소켓과 웹소켓

사진: Unsplash의JJ Ying 요즘 지원 공고를 보다보면 웹소켓 통신을 사용해본 경험을 요하는 공고가 꽤 있었습니다. 사실 이전부터 웹소켓 통신을 해봐야지 라고 마음만 먹고 시작하지 못했어서, 직접 경험해보기 전에 웹소켓이 뭔지, 전체적으로 정리해 보려고 합니다. HTTP와 TCP/IP HTTP와 TCP/IP는 항상 같이 이야기가 나오지만, 이 둘이 자주 혼동되는거 같습니다. 현대의 인터넷 통신에서는 아래와 같은 TCP/IP 4계층 구조를 통해 통신을 하고 있습니다. Application Layer(애플리케이션 계층): 응용 프로그램에서 사용하는 프로토콜을 정의하는 계층이다. 이 계층에서는 사용자와 직접적인 상호작용이 이루어진다. HTTP, FTP, SMTP 등의 프로토콜이 이 계층에서 동작한다...

article thumbnail
코틀린 리플렉션과 애노테이션 그리고 함수 참조
Android/Kotlin 2023. 11. 5. 18:44

사진: Unsplash의Elisa Photography 현재 프로젝트를 진행하면서 함수 참조를 사용해야 할까??라는 궁금증이 생겼습니다. 리플렉션은 최대한 사용을 지양해야 한다는 생각을 가지고 있었는데, 참고하고 있는 다른 Github에서 함수를 함수 참조로 사용하는 것을 보고, 내가 가지고 있던 생각이 잘못되었고 생각했습니다. 그래서 이번 게시글에서 코틀린의 리플렉션에 대해 자세히 알아보고, 함수 참조와 무엇이 다른가에 대해 알아보려고 합니다. 참고: 이 게시글에서는 각각에 대한 사용법을 다루고 있지는 않습니다. 리플렉션(Reflection)이란? 리플렉션은 프로그램이 런타임에서 자체 소스 코드를 내부 검사해, 클래스의 정보를 조작할 수 있도록 하는 기능입니다. 리플렉션에 대해 이해하기 위해서는 JVM..

article thumbnail
[Kotlin] 코루틴 처리 - week 14
스터디/코틀린 언어 2023. 11. 4. 16:43

코루틴 코틀린에서는 동시성 기능을 처리할 수 있도록 다양한 클래스와 함수를 코루틴으로 지원합니다. 코루틴이란? 코루틴은 이러한 동시성 작업을 간편하게 처리할 수 있게 해줍니다. 코루틴과 서브루틴의 차이점 서브루틴은(subroutine)은 함수를 호출했을 때 결과를 반환하는 순수 함수입니다. 이런 서브루틴 함수는 순차적으로 처리됩니다. 코루틴(Corutine)은 상태를 관리하고 일시 중단했다가 다시 시작할 수 있는 일시중단 함수로 구성합니다. 동시성 프로그래밍 동시성 프로그래밍은 기존의 순서대로 명령들이 실행되는 구조에서 벗어나 명령들이 불규칙한 순서대로 실행될 수 있게 해주는 프로그래밍 기법입니다. 멀티쓰레딩은 동시성 프로그래밍의 한 방법이지만, 동시성 프로그래밍이 꼭 병렬처리 및 멀티쓰레딩을 의미하지는..

article thumbnail
안드로이드에서 Context를 얻을 수 있는 다양한 방법
Android 2023. 11. 3. 18:15

사진: Unsplash의Anne Nygård 안드로이드에서 Context를 얻을 수 있는 방법은 생각보다 많습니다. 다만 모두가 다 같은 Context를 말하는 것은 아닙니다. 프래그먼트에서 액티비티의 Context에 접근할 때, 왜 캐스팅을 해야만 Context를 사용할 수 있을까? 란 의문점에서 이번 게시글에서 정리해보고자 합니다. 액티비티에서 Context를 얻는 방법 액티비티에서 직접 Context 얻기 - `this` Context가 필요한 곳이 액티비티라면 Context을 얻을 수 있는 가장 간단한 방법은 `this`입니다. 이것이 어떻게 가능한 지는 액티비티의 상속 구조를 살펴보면 알 수 있습니다. 액티비티는 추상 클래스인 Context를 구현한 ContextImpl 클래스를 내부적으로 이용..