전체 글 188

[백준] 11659 구간 합 구하기4 (Python 파이썬)

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 문제 설명 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 풀이 과정 이 문제는 누적 합 으로 푸는 문제이다. 누적합을 이용하지 않고 단순 합계를 이용한다면 시간초과 오류가 나게 된다. 한번 구간합을 구하는 시간복잡도는 O(n)이고 m번동안 수행을 하게 된다면 총 시간복잡도는 O(nm)이 되는데 데이터가 10만개가 되면 시간초과 오류..

[백준] 17478 재귀함수가 뭔가요? (Python 파이썬)

https://www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 문제 설명 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대학교가 자신과 맞는가에 대한 고민을 항상 해왔다. 중앙대학교와 자신의 길이 맞지 않다고 생각한 JH 교수님은 결국 중앙대학교를 떠나기로 결정하였다. 떠나기 전까지도 제자들을 생각하셨던 JH 교수님은 재귀함..

[백준] 2565 전깃줄 (Python 파이썬)

문제 설명 https://www.acmicpc.net/problem/2565 2565번: 전깃줄 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는 www.acmicpc.net 자세한 문제 설명은 위 링크를 참고하시길 바랍니다. 풀이 과정 이 문제는 DP(다이나믹 프로그래밍)을 이용해 최대 증가 수열을 찾는 문제라고 할 수 있다. 전깃줄이 교차하지 않도록 하려면 어떻게 해야할지에 대해 먼저 생각해보자. 먼저, 위 그림에서 A의 1번과 B의 8번만 연결되어 있다고 가정해보자. 그리고 이 때, 아래의 ①번 상황과 ②번 상황을 각각 생각해보자. ① A의 2번과 B의 2번이..

Algorithm/DP 2022.05.14

[Android] Fragment에서 ViewBinding 메모리 누수 방지

https://developer.android.com/topic/libraries/view-binding 뷰 결합 | Android 개발자 | Android Developers 뷰 결합 뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 모듈에서 사용 설정된 뷰 결합은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성합니다. 바인딩 developer.android.com Fragment에서 ViewBinding을 사용할 경우 메모리 누수(Memory leak)를 조심해야 합니다. 그 이유를 Fragment의 생명주기와 함께 알아봅시다. 먼저, Fragment의 생명주기를 보면 다음과 같습니다. 위 Fragment의 생명주기를 보면 onCreate 이후에 onCreateV..

Android 2022.05.02

[백준] 1912 연속합 (Python 파이썬)

https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 설명 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다. 풀이 과정 이 문제는 DP(다이나믹 프로그래밍)을 이용해 ..

Algorithm/DP 2022.04.28

[Android] Kotlin 기초 문법 (let, run, with, apply, also)

오늘은 안드로이드 개발 언어 중 하나인 코틀린의 기초 문법중 Scope Function에 대해 알아보겠습니다. 그리고 이 Scope Function을 자바와 비교하여 자바와 코틀린 코드간의 차이점을 알아보고, 어떻게 사용하는지 알아보겠습니다. Scope Function 코틀린 표준 라이브러리에서 제공하는, 객체의 Context 내에서 코드 블럭을 실행하는 것을 목적으로 만든 함수 let, run, with, apply, also 의 5가지가 존재 let, run, with는 람다식의 결과를 반환하며 apply, also는 컨텍스트 객체를 반환한다. let let() 함수는 호출한 객체를 이어지는 함수 블록의 인자로 전달한다. 그리고 그 함수 블록의 결과를 반환한다. 그래서 주로 객체 결과값에 함수를 호출..

Android 2022.03.13

[Oracle] 오라클 테이블 수정 (컬럼 추가/변경/삭제)

오늘은 오라클 DB의 테이블을 변경하는 방법에 대해 알아보겠습니다. 테이블을 변경할 때는 ALTER TABLE 라는 명령어를 사용하게 됩니다. ALTER TABLE [테이블명] 이 기본 구조이고 그 뒤에, 컬럼을 수정하거나 삭제하느냐에 따라 MODIFY 명령어를 붙이느냐, ADD 나 DROP 등을 붙이느냐가 달라집니다. 그럼 하나씩 차례대로 알아봅시다! 테이블 컬럼 추가 먼저 테이블에 컬럼을 추가하는 방법입니다. 추가는 ADD 명령어를 이용하여 다음과 같이 작성하면 됩니다. ALTER TABLE [테이블명] ADD 컬럼명 데이터타입(길이); ALTER TABLE User ADD USER_ID VARCHAR2(15); 위 예시는 User라는 테이블에 USER_ID라는 컬럼을 VARCHAR2(15) 타입으로..

Oracle 2022.02.21

[Oracle] 오라클 테이블 만들기 (Create, PK, COMMENT)

오늘은 SQL에서 테이블 생성과 생성후에 기본키를 지정하고, 코멘트를 붙이는 방법에 대해 알아보겠습니다. 먼저, 테이블을 생성하는 기본적인 구성과 방법에 대해 알아보겠습니다. 테이블 생성 먼저, 명령어와 구성은 다음과 같습니다. Create TABLE 테이블명 ( 컬럼명1데이터타입기본값(생략O) NULL여부(생략O) 컬럼명2데이터타입기본값(생략O)NULL여부(생략O) ... ); 컬럼명에는 컬럼 이름을 입력하면 되고, 데이터타입에는 NUMBER(4), VARCHAR2(10), int, DATE 등의 데이터 타입을 입력합니다. 기본값에는 DEFAULT 100과 같이 기본값으로 지정해줄 값을 입력하면 되며(생략가능) NULL여부에는 NOT NULL과 같이 NULL 허용 여부를 지정합니다(기본은 NULL허용이..

Oracle 2022.02.15

[2021 네이버 웍스] 웍스 모바일 인턴 후기

2021년 7월부터 8월까지 웍스 모바일(네이버 웍스)에서 채용연계형 인턴십을 진행했습니다. 그래서 인턴 과정에 대한 전체적인 내용을 적어보려 합니다. 1. 서류 전형 1 [필수문항] 자신에 대해 자유롭게 표현해 주세요. => 이 항목은 저의 가치관을 개발에 접목시켜 작성했습니다. 아무래도 개발자를 뽑는 공고인 만큼, 개발과 연관하여 소개하는 것이 좋을 것 같다고 생각했다. 2 [필수문항] 자신의 기술력과 열정을 보여줄 수 있는 활동사항을 기재해 주세요. => 개인 토이 프로젝트와 학부때 진행했던 프로젝트들, 동아리 활동 위주로 적었습니다. 특히 저는 안드로이드 부문으로 지원했기 때문에 안드로이드 관련 활동 위주로 적었습니다! 3 [필수문항] Works Mobile에서 제공하는 서비스(기업 대상의 그룹웨..

취업 2022.01.06

[백준]11054 가장 긴 바이토닉 부분 수열 (Kotlin)

문제 설명 https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 수열 S가 어떤 수 Sk를 기준으로 S1 Sk+1 > ... SN-1 > SN을 만족한다면, 그 수열을 바이토닉 수열이라고 한다. 예를 들어, {10, 20, 30, 25, 20}과 {10, 20, 30, 40}, {50, 40, 25, 10} 은 바이토닉 수열이지만, {1, 2, 3, 2, 1, 2, 3, 2, 1}과 {10, 20, 30, 40, 20, 30} ..

Algorithm/DP 2021.11.29