전체 글 92

백준 11719 그대로 출력하기 2 - python

11719번: 그대로 출력하기 2 (acmicpc.net) 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 문제 ) 입력 받은 대로 출력하는 프로그램을 작성하시오. 풀이 ) 두가지 방법으로 해결해보았다! 이 문제를 풀고 파이썬의 특성을 알게 되었고, 다음에 이런 문제가 나오면 바로 풀 수 있을 것 같다 ! + EOFerror) 더이상 읽어들일 것이 없을 때 발생하는 에러 프로그램에서 발생하는 예외상황 모든 명령문을 try 에 넣어주고 오류/예외를 처리해줄 핸들러 except 를 명시하자! ..

백준 1476 날짜계산 - python

1476번: 날짜 계산 (acmicpc.net) 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 문제 ) 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는..

백준 2309 일곱 난쟁이 - python

2309번: 일곱 난쟁이 (acmicpc.net) 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 유형 ) 브루트포스 -> 브루트 포스란? '모든 경우의 수를 해보는 방법' -> 나는 for문으로 다 돌려 확인해보았다 풀이) 아홉 난쟁이의 합 (sum) 을 구하고 거기서 두명 난쟁이의 키를 빼서 100이 되면 일곱 난쟁이가 완성된다!

백준 2751 수 정렬하기 2 - python

2751번: 수 정렬하기 2 (acmicpc.net) 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 오답) 같은 코드로 제출했는데 python3 으로 제출했을 때와 pypy3으로 제출하였을 때 정답 여부가 갈렸다. 그 이유는 pypy3 은 python3 보다 실행 속도가 더 빠르기 때문인데, 보통 pypy3은 파이썬3의 문법을 그대로 지원한다. 삼성전자 코테에서는 pypy3을 채점에 이용하는데 지원자가 python3 으로 제출하면 pypy3 으로 채점이 된다. 반복문이 많을수록 pypy3과 py..

안드로이드 - SharedPreferences 를 사용한 간단한 메모앱 [Kotlin]

안드로이드에서 데이터를 입력하고 저장하는 방법에는 여러가지가 있다. DB, SQLite, SharedPreferences 등등 .. 그중에서 오늘은 SharedPreferences 는 어떤 용도로 사용하는지 공부하였다. SharedPreferences 는 다른 데이터 저장 방법에 비해 속도가 빠르기 때문에 간단한 데이터를 저장할 때 주로 사용한다. 내부 저장소를 이용하기 때문에 권한 설정도 필요 없고 간단하게 이용할 수 있다. 예를 들면 실제 앱에서 자동 로그인시 사용자 인증이라던지 앱의 상태 정보를 저장하는 용도로 자주 사용된다. 액티비티에서 Intent 로 값을 넣고 빼는 것과 비슷한 형태이다. 아직 사용자 인증까지 해보기에는 공부가 더 필요할 것 같아서 그동안 공부한 LifeCycle 과 Share..

안드로이드 - LifeCycle 정리

PC 로는 여러가지 화면을 띄우고 병렬적인 동시작업이 가능하다. 하지만 스마트폰에서는 여러 앱을 실행하는 것은 가능하지만 여러 앱의 화면을 띄우는 것은 불가능하다. 실제 카톡을 하다가 전화가 오면 전화 앱으로 대체되는 현상을 볼 수 있다. LifeCycle 은 왜 필요한 것일까❓ 이 메서드들은 override 되어 사용된다. ( override 란? 한마디로 재정의 자식 클래스가 부모클래스의 기본적인 동작을 변경하는 것이다. ) 예를 들어, 메인 액티비티에서 동영상을 실행하고 있다면 서브 액티비티로 화면 전환된다면 메인 액티비티에 onPause() 또는 onStop() 메서드 안에 동영상을 정지시키는 코드를 작성해둬야한다. 그렇지 않으면 그만큼 자원 ( 배터리, 네트워크 트래픽 등) 이 낭비된다. 각각의..

백준 11650 좌표 정렬하기 - python

11650번: 좌표 정렬하기 (acmicpc.net) 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 풀이) array 를 sort 해주면 되는 문제 기준이 두개일 때, lambda 를 써주면 쉽게 해결 가능하다. 튜플로 순서를 보내주면 됨 ! 여기서 lambda 는 인공지능 분야에서 쓰이는 Lisp 언어에서 물려 받은 것이다. 함수를 한줄로 만들게 해주는 것 lambda 인자 : 표현식 으로 써주면 된다. 예를들어 , mylist 가 다음과 같이 정의되어 ..

Android ListView 와 RecyclerView 특징과 차이점

Layout 과 Container Layout은 위젯의 위치를 다루는 것이였다면 , Container 는 위젯이나 다른 레이아웃에 데이터를 동적으로 표현할 때 사용된다. Container 를 사용하는 대표적인 예로 목록을 화면에 출력할 때 사용하는 RecyclerView 가 있다. 컨테이너는 레이아웃과 다르게 내부 요소의 위치를 결정할 수 있는 속성이 없으므로 컨테이너를 사용할 때는 다른 레이아웃을 컨테이너 안에 삽입해서 사용한다. ListView 와 RecyclerView의 차이 모바일 단말에서 가장 많이 사용되는 UI ⇒ 리스트 안드로이드에서 리스트 형태로 보여주는 것은 ListView 와 RecyclerView 가 있는데 둘의 차이는 다음과 같다. RecyclerView ListView ViewHo..

Code Up 1096 : 바둑판에 흰 돌 놓기 - python

문제 기숙사 생활을 하는 학교에서 어떤 금요일(전원 귀가일)에는 모두 집으로 귀가를 한다. 오랜만에 집에 간 영일이는 아버지와 함께 두던 매우 큰 오목에 대해서 생각해 보다가 "바둑판에 돌을 올린 것을 프로그래밍 할 수 있을까?"하고 생각하였다. 바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때, n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자. **참고 가로번호, 세로번호를 사용할 수 있는 2차원 배열을 사용하면 이러한 형태를 쉽게 기록하고 사용할 수 있다. 물론 더 확장한 n차원 배열도 만들 수 있다. 입력 바둑판에 올려 놓을 흰 돌의 개수(n)가 첫 줄에 입력된다. 둘째 줄 부터 n+1 번째 줄까지 힌 돌을 놓을 좌표(x, y)가 n줄 입력된다. n은 10이하의 자연수이고 x, y..

Android - Manifest 정리

Manifest 모든 앱 프로젝트는**AndroidManifest.xml 파일이 필수적**이다. Manifest는 안드로이드 애플리케이션에 대한 각종 정보를 기술한 애플리케이션 명세서이다. 가장 상위 폴더에 매니페스트 파일이 있어야하며, 이 정보는 앱이 실행되기 전에 시스템이 알아야 할 내용을 정의하고 있다. 1. 태그에 타이틀이나 아이콘, 테마 등과 같은 앱 자체의 정보를 속성으로 지정할 수 있다. 이때 태그는 매니페스트에 반드시 하나만 있어야한다. 안드로이드 스튜디오에서 프로젝트를 만들면 처음으로 볼 수 있는 매니페스트이다. 및 은 유일하고, 다른 태그들은 여러 번 또는 안 나와도 무방하다. 태그가 시작되고 package="com.example.helloworld" 으로 앱 패키지를 정의한다. 태그 ..