이 포스팅은 생활코딩 강의를 참고하여 작성하였습니다. ☞ 다운로드 방법 - 생활코딩 wget이용하여서 다운로드 받기 1) 바로 다운로드 받기 → wget url주소 wget https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png 참고 : 터미널상의 붙여넣기 단축키는 ctrl+shift+v나 shift+insert를 이용하면 됩니다. 복사 단축키는 ctrl+shift+c나 ctrl+insert입니다. 2) 다른 이름으로 저장하기 → wget -O 원하는이름 url주소 wget -O myfile.png https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png
이 포스팅은 생활코딩 강의를 참고하여 작성하였습니다. ☞ 패키지 매니저 - 생활코딩 패키지매니저 패키지 매니저는 마치 스마트폰 세상의 앱스토어(혹은 Play 스토어)와 같이 유용한 프로그램들을 받을 수 있는 툴입니다. 리눅스 버젼마다 다른 패키지 매니저를 사용하는 경우도 있습니다. 저는 우분투로 실습을 진행하여서 apt라는 패키지 매니저를 사용합니다. (apt를 지원하지 않는 리눅스라면 보통 yum을 사용합니다.) 패키지 매니저로 htop이라는 프로그램 설치하기 1) 프로그램 목록 최신화하기 (sudo) apt-get update 2) 프로그램 목록중에 htop(프로그램) 키워드로 검색하기 (sudo) apt-cache search htop 3) htop(프로그램) 설치하기 (sudo) apt-get i..
The PanlindromeThe Panlindrome (회문) - 문제 링크 (탑코더 로그인 필요함) 한줄요약) 주어진 문자열 뒤에 (0개 이상의) 문자를 추가하여, 가장 짧게 회문이 되는 경우의 문자열 길이를 구하시오. (회문은 앞부터 읽으나 뒤부터 읽으나 같은 문자열을 말합니다. 예를들면 리효리) ex1) 주어진 문자열이 abb이면 가장 짧게 회문이 되는 경우는 abba이고 문자열 길이 4가 정답 ex2) 주어진 문자열이 abcba이면 이미 회문이 되므로 문자열 길이는 5가 정답 문제 풀이먼저 주어진 문자열이 회문인지 확인합니다. 주어진 문자열이 a b c 인 경우 0번째와 n번째 문자가 같은지 확인합니다. a b c 문자가 같은 경우 1번째, 2번째 . . . 의 경우를 계속 확인해보고, 아닌 경..
프로그래머스 알고리즘 - 타겟넘버☞ 타겟 넘버 문제 링크 멱집합(모든 부분집합)을 구하는 방법을 응용하면 해당 문제를 풀기 수월 합니다. ☞ 멱집합(부분집합) 알고리즘 문제 풀이첫번째 주어진 숫자로 덧셈(+)을 계산하거나, 혹은 뺄셈(-)을 진행합니다.→ 두번째 주어진 숫자로 덧셈(+)을 계산하거나, 혹은 뺄셈(-)을 진행합니다.→ . . . → N번째 주어진 숫자로 덧셈(+)을 계산하거나, 혹은 뺄셈(-)을 진행합니다.N번째까지 계산한 결과가 타겟 넘버와 같다면 answer을 하나 증가 시킵니다. public class Solution { private static int answer = 0; public static void main(String[] args) { int[] numbers = {1, ..
JpaRepository JpaRepository 인터페이스를 상속 받는 것만으로도 웬만한 CRUD는 바로 사용 가능 했다. 아래와 같이 설정 한것 만으로도 save(), findAll(), delete(), exists() 등등의 메소드가 바로 사용가능했다. (굳이 오버라이딩 하듯이 메소드들을 명시할 필요도 없었다.) JpaRepository 인터페이스는 스프링 데이터의 CrudRepository를 상속받았기 때문에 CrudRepositry에 정의되어 있는 기능도 사용가능 했다. public interface QuestionRepository extends JpaRepository { } 쿼리 메소드 JPA의 Repositoy안에 find와 By 키워드를 적절히 섞은 쿼리 메소드만 선언하면 대부분의 조..
멱집합 알고리즘 멱집합은 한 집합의 모든 부분집합을 뜻합니다. 원소 a,b,c를 갖고 있는 집합의 모든 부분 집합은 (a, b, c, ab, ac, bc, abc + 공집합)으로 총 8가지 입니다. 탐색 (재귀, 브루트포스) 알고리즘 문제를 풀때 멱집합을 구하는 방법을 종종 사용하게 됩니다. 모든 부분집합의 경우의 수를 구하는 과정은 다음과 같습니다. 첫번째 원소가 포함이 되는가? 혹은 안되는가?→ 두번째 원소가 포함이 되는가? 혹은 안되는가? → . . . → N번째 원소가 포함이 되는가? 혹은 안되는가? 그래서 원소의 갯수가 N인 집합의 모든 부분집합의 갯수는 2^N개가 됩니다. 아래는 주어진 집합의 모든 부분집합을 출력하는 (java)코드입니다. 핵심부분은 위에서 설명한대로 n번째의 원소가 포함이 ..
예외 처리 방법 메소드를 만드는 개발자 입장에서 발생하는 예외를 처리하는 방법은 2가지가 있습니다. (자세한 문법적인 설명은 이 포스팅에서 하지 않습니다.) try - catch문을 사용하기메소드에 thorws 키워드로 예외 선언하기try-catch문을 이용하면 예외가 발생될 것 같은 지점에 직접 예외 처리를 할 수있고, throws를 사용하게 되면 메소드를 사용하는 쪽에서 예외에 대한 처리를 해주어야 합니다. 처음 예외 처리를 배웠을때, throws로 예외를 선언하는 것은 해당 메소드를 만든 개발자로써 무책임한 방법이라고 생각했습니다. 사용자를 편하게 하는 것이 객체지향 설계의 미덕이라고 배웠는데 번거로운 예외처리를 안하겠다는 것처럼 보였습니다. 하지만 이와 같은 생각은 '언제 어떤 방법을 사용해야 하..
Java 프로그램 연산 속도 계산하기 연산속도를 계산하기 위해서는 System.currentTimeMillis()나 System.nanoTime()을 이용합니다. 두 메소드는 UTC라는 시간 표준 체계를 따라 현재시간을 리턴해줍니다. 그래서 연산 속도를 측정하기 위해서 시작시간의 현재시간, 종료시간의 현재시간의 차를 이용하면 연산속도가 얼마인지 계산 해 낼 수 있습니다. currentTimeMillis는 ms로리턴하고(1/1,000초) JDK 5버젼 이상부터는 사용가능한 nanoTime는 ns(1,000,000,000초)로 리턴하니 가능하면 더 정확한 nanoTime을 사용하는게 좋습니다. String vs StringBuffer 연산 속도 비교해보기 String String을 이용하여서 "abcde"라..