문제 피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다.1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까? 풀이 피보나치 수열의 규칙은 다음과 같다.처음 항은 1이다.두번째 항은 2이다.1과 2를 제외한 n번째 항은 (n-1번째 항)+(n-2번째 항) 이다. 위 규칙을 기반으로 피보나치 수열을 구하는 알고리즘은 다음과 같이 표현할 수 있다. while(true) { fiboIdx_03 = fiboIdx_01 + fiboIdx_02; fiboIdx_01 = fiboIdx_02; fiboIdx_02 = fiboIdx_03; } 아래와 같이 위 알고리즘에 짝수이면서 ..
문제 10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다.1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요? 풀이 첫번째 문제인 만큼 아주 쉬운 문제가 나왔다. 알고리즘은 아래와 같다.정수형 변수를 1부터 999까지 1씩 증가시키면서 해당 숫자가 3 혹은 5와 나누어 떨어지는지 확인한다.알고리즘 1의 결과가 참일 경우 해당 숫자를 정수형 변수에 더한다. 위 알고리즘을 기반으로 작성한 코드는 다음과 같다. public class Problem_01 { public static void main(String[] args) { // TODO Auto-generated method stub int sum = 0; for(int i..
프로젝트 오일러란? 결론부터 말하면 수학 문제를 풀고, 답을 공유하고 점점 어려운 문제에 도전할 수 있는 웹사이트다.https://projecteuler.net/about (오리지날 사이트)http://euler.synap.co.kr/ (한국어 번역 사이트)회원가입을 하고 문제에 대한 올바른 답을 정답란에 넣어 제출하면 정답여부를 확인할 수 있고, 정답인 경우에는 포럼이 열려 내 코드를 공유하거나 다른 사람이 올린 코드를 살펴볼 수 있다. 오리지날 사이트는 영어로 되어있어 어려워 하는 분들이 많아 사이냅소프트에서 친절하게 한국어 번역 사이트를 운영하고 있다. 필자가 생각하는 이 사이트의 장점은 아래와 같다. 알고리즘 능력을 키울 수 있다. 답을 공유할 수 있어 다른 사람의 풀이 방식을 보며 새로운 관점으..
서론 겔럭시 유저인 나는 어제 펌웨어를 Android 6.0 으로 업데이트했다. 그리고 오늘 Bluetooth Beacon 테스트 앱을 구동했는데 기존에 이상없이 동작하던 앱이 비컨 데이터를 받아오지 못하는 것이다. PC와 연결하여 LogCat을 살펴보니 09-22 22:35:20.152 5158 5254 E BluetoothUtils: Permission denial: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results위와 같은 에러 메세지를 확인할 수 있었다. 관련 키워드로 구글링 해본 결과 Android M 부터는 위치 엑세스 권한과 런타임 상에서 사용자에게 위치 정보 엑세스 동의를 구해야 한다는 내용을..
컴퓨터를 포맷하거나 새로운 곳에서 자바 개발환경을 구성할 때 꼭 하는 작업이지만 어쩌다 하는 관계로 매번 검색하는게 번거로워 내 블로그에 정리를 한다. 우선 Oracle 홈페이지 Download 카테고리에서 JDK를 다운받고 설치가 완료되면 "C:\Program Files\Java\jdk1.8.0_20" 와 같이 해당 디렉토리 주소를 긁어온다. 윈도우키 + Pause/Break키를 눌러서 시스템창을 띄운 후~ 고급시스템설정 메뉴를 클릭한다. 고급 탭으로 이동해서 환경변수 버튼을 클릭! 시스템 변수창에 새로만들기 버튼을 눌러서 이름 : JAVA_HOME경로 : 위에 긁어온 디렉터리 Path 생성! 사전에 등록되어있던 Path라는 변수 편집을 눌러 가장 뒷 부분에 세미콜론 (;)을 삽입 후 뒤에 %JAVA_..
레지스터라는 말을 처음 접한 사람들은 지레 겁을 먹는 경우가 많은데 어렵게 생각할 필요가 없다. 레지스터는 단지 "CPU가 사용하는 저장공간"일 뿐이다. 리버싱이 왜 필요하고 어떨 때 사용하는지는 구글링에 맡기도록 하고 오늘 필자는 리버서가 반드시 알아야 할 6가지 레지스터에 대해 설명을 할 것이다. EAX가장 빈번하게 사용되는 레지스터이다.계산식에 사용되고 사칙연산에 주로 이용된다.함수의 리턴 값이나 return 100 등의 코드를 사용할 때 100과 같은 값이 저장된다.A는 Accumulator의 약자이다. EDXEAX와 역할이 같지만 리턴값을 저장하는 용도로는 사용되지 않는다.각종 연산에 사용된다.D는 Data의 약자이다. ECXC는 Count의 약자이다.루프문을 수행할 때 카운팅 하는 역할을 한다..
How to change assembly context? x86 어셈블리 코드를 작성할 때 사람들은 AT&T문법과 인텔 문법 중 한 가지를 사용한다. 여기서 AT&T문법은 모든 리눅스 역어셈블 툴이 초기값으로 사용하는 문법으로 모든 명령 앞에 %와 $를 붙여 알아보기 쉽다. 하지만 개인 선호에 따라 Intel문법을 사용하고 싶다면 GDB를 사용할 때 set disassembly intel 혹은 줄여서 set dis intel이라고 입력해 역어셈블 표기를 인텔로 설정할 수 있다. 혹은 홈 디렉터리의 .gdbinit 파일에 앞의 명령을 입력해 gdb를 실행할 때마다 이런 환경이 설정되게 할 수 있다. 이런 것들이 가능한 이유는 gdb가 실행 시 .gdbinit 에 있는 명령어들을 자동적으로 실행하기 때문이다.
- Total
- Today
- Yesterday
- 코틀린
- kotlin 기초
- 코딩
- 자바
- 안드로이드 스튜디오
- 문제풀이
- 프로젝트오일러
- Android
- 프로그래밍
- LiveTemplate
- 코딩문제
- 런탭
- php
- compose bottomsheet
- Kotlin
- 코틀린 기초강의
- 안드로이드
- 영어발음
- 안드로이드 컴포즈
- 안드로이드 바텀시트
- Programming
- 컴포즈 바텀시트
- 안스 템플릿
- android studio
- 안드로이드 스튜디오 라이브 템플릿
- Java
- live template
- 개발자
- 영어회화
- 코틀린 기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |