전체 글 175

[안드로이드 프로그래밍 연습문제] Chapter 5 - 4번 (weigth 속성)

1. 문제 안내, 예시 화면 위의 화면을 XML파일로 만드시오. 단, 리니어레이아웃만 사용하고 각 렝아웃의 색상을 다르게 설정한다. 이 카테고리는 학교 강의에서는 풀지 않은 연습문제들의 풀이를 올리는 과제이다. 물론 실습문제들만을 올릴것이다. 연습문제가 아닌 직접 풀어보기와 같은 문제들도 올릴예정이다. 많은 글을 올렸으면 좋겠다. 2. 문제풀이 이 문제는 간단하다. 글로 설명하자면 레이아웃안에 최대 세개의 LinearLayout이 중첩된다고 생각하면 된다. 여기서 조금 어려운 부분은 바로 오른쪽 상단 부분이다. 긴 막대기 형태로 세개의 레이아웃이 배열되어 있는데 처음 보면 막막할 것 같다는 생각이 들 수 있다. 다만 weight속성과 LinearLayout의 orientation속성을 알고있다면 잘 해결..

[모바일 프로그래밍 과제] - 4주차 (직접풀어보기 5 - 3)

1. 과제 안내문, 예시 출력화면 다음 화면을 xml 파일 없이 Java 코드만 이용하여 완성하라. 에디트텍스트, 버튼 및 텍스트뷰 각각 1개로 화면이 구성되며, 버튼을 클릭하면 에디트텍스트에 입력된 문자열이 하단의 텍스트뷰에 나타나게 한다. 이 과제에 특별한 점은 Java코드만으로 객체들을 구성해야 한다. 그 전에 Java에서 Paint같은 메소드를 사용하거나 컴토넌트들을 구성한 경험이 있어 그렇게 어렵게 느껴지지는 않았다. 다음은 코드구성이다. 2. 코드 구성 코드를 구성하는 경우는 그렇게 어렵지 않았다. 배치같은 경우도 Linearlayout 안에 순서대로 객체들을 넣어주기만 하면 되었고, 리스너같은 경우도 버튼을 눌렀을 때 EditText에서 값을 받아 TextView의 텍스트로 지정해주기만 하면..

[안드로이드 프로그래밍 예제] 직접 풀어보기 5-2

1. 문제 안내, 예제 화면 리니어레이아웃으로 다음 화면을 구성하는 XML을 작성하라. 단, 레이아웃이 구분되어보이도록 서로 다른 색으로 지정한다. HTML을 따로 공부했을 때, 대학과정이 아니어서 그런것인지는 모르겠지만, 레이아웃을 그렇게 깊게 공부하지 않았다. 그래서인지 모바일 프로그래밍을 공부할 때 레이아웃 단원에 조금 집중하기 위해 예제를 풀어보았고 자연스럽게 글을 올리게 되었다. 2. 풀이 과정 어찌보면 이번 문제는 리니어레이아웃(LinearLayout)를 얼마나 잘 다룰 수 있는지 확인하는 문제라고 생각한다. 문제를 보면 LinearLayout을 여러번 중첩해서 구현할 수 있는 것을 알 수 있다. 최대 3번까지의 레이아웃을 중첩하여 사용하였고 다음은 코드이다. 이 문제에서 중요한 점은 weig..

[명품 HTML5+CSS3+Javascript 웹 프로그래밍] - Open Challenge 01

1. 문제 안내 컴퓨터의 기술 중 한 가지를 소개하는 웹 페이지를 작성하라. HTML5 태그로 다음 요소를 모두 삽입하라. 리스트, 표, 이미지 목차 부분은 링크로 만들고 본문에 앵커를 만들어 연결 관련 정보를 클릭하면 웹 페이지를 새 창이나 탭에 출력하도록 링크 작성 학교 수업 전 생활코딩을 통해 HTML을 배웠지만, 이렇게적극적인 실습은 한적이 없다. 이 카테고리에 많은 실습을 올렸으면 좋겠다. 2. 코드 작성 사실 문제 중 음성파일을 넣으라는 요구문도 있었지만, 구현하지 못했다. 내 노트북의 오디오가 고장나서 확인을 하지 못하기 때문이다...... 다음은 내가 구성한 페이지에서 중요한 문법들을 정리해보았다. - 리스트 자료구조를 공부하던 도중이어서 그런진 모르겠지만, 리스트라는 단원을 보자마자 연결..

[모바일 프로그래밍 과제] - 3주차 (연습문제 9, setRotation())

1.과제 안내문, 예시 출력화면 "회전하기" 버튼을 누르면 버튼을 한 번 누를 때마다 하단의 사진이 10도씩 시계방향으로 회전하도록 프로젝트를 구성하라. 하단의 사진은 자신의 셀카(selfie)를 찍어서 적당한 크기로 편집하여 사용한다.(아래 예에서는 300x186 크기의 그림 파일을 사용했다.) 자바과목을 들었을 때는 (같은교수님 이셨다.) 그날 배운 문법만으로 해결할 수 있는 과제를 내주셨는데, 이번 수업은 스스로 구글링을 해봐야 문제를 해결할 수 있다. ImageView를 화면 중앙에 맞추는 법이라던가, 회전시키는 방법들이 이에 해당한다. 전자는 깔끔하지 못하게 margin값을 주는 것으로 해결하였고 후자는 serRotation() 메소드를 활용하였다. 2. 코드 구성 이번과제에서 위젯들을 구성하는..

[안드로이드 프로그래밍 과제] - 2주차 (직접 풀어보기 4-2)

1. 과제 안내문, 예시 출력화면 다음과 같은 화면을 xml로 코딩하라. 버튼, 텍스트뷰, 에디트텍스트, 버튼을 차례로 지정하고 앞에서 배운 다양한 속성을 사용하여 다음 화면과 최대한 동일하게 나오도록 하라. 안드로이드 프로그래밍 강의의 첫 번째 과제이다. 안드로이드 프로그래밍을 처음 배울 때는 위와 같은 위젯의 기초를 배운다. 마진, 패딩과 같은 위젯의 속성도 배우는데, 화면을 배치하는데 있어서 매우 중요한 개념이니 확실하게 알아두어야 한다. 위의 과제는 다양한 위젯들의 속성을 정의하고 배치하는 것을 연습하기 위한 과제라고 생각된다. 다음은 풀이 과정이다. 2. 코드 구성 위의 위젯들은 총 4개가 있다. 버튼1, 텍스트 뷰, 에디트 텍스트, 버튼2 이다. 각각의 위젯을 구성하는 코드를 차례로 게시하겠다..

Python을 활용한 '여름 길이' 분석하기 - (한 해의 여름은 몇일일까?)

1. 개요 바로 전 게시물에서는 Python을 활용해서 매년 평균 온도를 분석하였다. 이 프로젝트를 진행하면서 기온에 대한 궁금증이 생긴 후, 여름에 대한 궁금증이 시작되었다. 내가 내린 결론은(코드가 완벽하다면) '서울의 평균 기온은 점점 올라가고 있다.' 이고 이는 '서울의 여름은 길어지고 있을까?' 라는 질문으로 이어졌다. 온도가 증가했으니 여름은 당연히 길어지지! 라고 말할 수 있지만, 봄, 겨울 가을의 평균 기온이 증가해도 같은 결과가 나올 수 있다. 궁금증이 생겼고 나는 Python으로 그래프를 그릴 수 있으니, 바로 코드를 작성하기 시작했다. 2. 코드설계 코드를 작성할 때 가장 중요한 것 중 하나는 명확한 조건이다. 나에게는 여름의 길이를 구분할 수 있는 기준이 필요했다. 구글링을 해보니,..

Python을 활용한 서울 평균온도 분석하기

1. 개요 Python으로 데이터를 다루는 것은 작년 말(2019.12월)에 얇은 책 한권으로 학습한 기억이 있다. 당시 책에 있는 내용은 csv형태의 데이터를 Python으로 가공하는 형태의 내용이었는데, 개인적으로 흥미롭게 공부했다. 내가 배우는 언어로 무엇을 할 수 있을지를 경험하기 위해 공부한 분야이기 때문에 그렇게 깊은 학습을 하지는 못하였지만 궁금한 점을 해결할 수준, 미래에 데이터 분석이라는 분야를 만났을 때 구글링을 통해 기억해내고 학습을 이어갈 수 있는 수준을 유지하기 위해 노력했다. 어쩌다 발견한 지구온도상승에 대한 뉴스를 보고 그 뉴스의 댓글창에 열심히 토론을 하고있는 댓글들을 보며 직접 평균 온도를 계산하여 그래프로 확인하면 좋을 것 같다는 생각에 그래프를 그려보았다. 나는 통계를 ..

[알고리즘] C++ vector을 활용한 정렬 구현(버블, 삽입, 퀵)

1. 이론 알고리즘 중에 제일 대표적인 '정렬' 알고리즘이다. 알고리즘을 전부 공부한 것은 아니지만 아마 알고리즘을 공부할 때 가장 기초적으로 공부하는 알고리즘인 것 같다. (C언어를 공부할 때도 나왔으니......) 버블과 삽입은 어려운 알고리즘은 아니라고 생각했지만(이미 완성된 알고리즘을 구현하는 것 밖에 하지 않았지만......), 퀵의 구현을 공부할 때는 "대체 어떤 천재가 이런걸 만든거지?" 라는 생각이 들 정도로 감명받았다. 다음은 각각의 알고리즘의 이론이다. - 버블 버블알고리즘의 이름이 '버블'인 이유는 밑에서 부터 큰 숫자들이 마치 거품처럼 보글보글 올라오는 모습과 비슷하다고 하여 만들어진 이름이다. 최대값을 하나씩 가려내는 알고리즘이라고 생각하면 이해하기 쉬울 것이다. 다음과 같이 순서..

[백준 알고리즘] 1929번 - 소수 구하기 (시간 초과, 소수 알고리즘)

1. 문제, 실행결과 예시 백준 알고리즘 카테고리에 글을 쓰는게 정말 오랜만인 것처럼 느껴진다. 아마 실제로도 오랜만일 것이다 ㅎㅎ. 이 문제에 대한 풀이를 올리는 이유는 시간 초과라는 새로운 문제를 만났기 때문이다. 실제로 소수를 구하는 문제는 정말 많이 풀어봤지만, 이번 문제의 최대 입력값은 100000으로 기존에 사용하던 방법( 1 ~ N 까지의 모든 수를 비교하는 방법 )을 사용하면 시간초과가 날 수 밖에 없었다.( 심지어 숫자 하나당 줄바꿈을 해야하는 문제이다. ) 때문에 소수를 찾는 다른 방법을 사용해야 했다. 방법은 아래에서 자세히 설명할 것이다. 다음은 문제와 실행결과 예시 이다. 출처: https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의..