본문 바로가기
반응형

자바10

[프로그래머스] 게임 맵 최단거리(level2) (자바) package com.programmers; import java.util.LinkedList; import java.util.Queue; /** * https://programmers.co.kr/learn/courses/30/lessons/1844?language=java * 방문 처리를 해버리면 다른 루트에서 접근할 때 도착하지를 못한다. bfs일 경우 최단 거리로 갈 수 있기 때문에 방문처리를 false로 바꿀 일이 필요 없다. */ public class 게임맵_최단거리 { public static void main(String[] args) { int[][] maps = { {1, 0, 1, 1, 1}, {1, 0, 1, 0, 1}, {1, 0, 1, 1, 1}, {1, 1, 1, 0, 1}, .. 2021. 11. 14.
[프로그래머스] N개의 최소공배수 (자바) 문제 풀이 유클리드호제(최대공약수) 알고리즘을 활용하여 풀 수 있다. package com.programmers; /* 문제 설명 두 수의 최소공배수(Least Commontem Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. 입출력 예 arr result [2,6,8,14] 168 [1,2.. 2021. 10. 17.
[프로그래머스] 큰 수 만들기 (level2) (자바) 문제 풀이 문제를 잘 파악하는 것이 중요하다. 힙소트(오답) -> 조합(시간초과) -> 풀이(그리디)를 보고 문제를 풀 수 있었다. package com.programmers; import java.util.PriorityQueue; import java.util.Queue; /** * 문제 설명 * 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. * * 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. * * 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들.. 2021. 10. 17.
비전공자의 신입 백엔드(스프링) 개발자 취업후기 오랜만에 블로그를 작성한다. 국비지원 교육을 통해 SI회사에 취업하였고 근 1년동안 일하면서 자체적인 서비스를 가진 회사에 대한 마음이 커져갔었다. 퇴사를 결심하던 때에 항해99라는 부트캠프를 보게 되었고 3월부터 6월까지 항해99 부트캠프를 이수하였다.그리고 나서 지금 항해99 부트캠프 과정을 수료한지 1달 반 정도가 되었다. 금방 취업할 것만 같았지만 생각보다 취업시장의 문턱은 높았다. 운이 좋게도 내가 가고 싶었던 스타트업에 괜찮은 처우로 입사하게 되었다. 취업시장에 뛰어든 나는 아래와 같은 스펙을 갖고 있었다. 스펙 아주대 경영학 전공, 국제통상학 복수전공 국비지원교육 수료, 부트캠프 수료(항해99) SI 회사 근무 (10개월) IT관련 자격 정보처리기사 리눅스마스터 2급 영어 자격 OPIC IM.. 2021. 7. 28.
객체 지향 프로그래밍이 정리 (OOP 정리) OOP 1. 객체지향 프로그래밍은 무엇인가? 객체 지향 프로그래밍은 어떤 속성과 동작을 가진 객체를 만들고, 객체들을 조립하여 하나의 프로그램을(상호작용을 하는) 만드는 방법을 객체지향 프로그래밍이라 한다. 2. 객체 프로그래밍의 장,단점 설명 장점 코드 재사용이 용이하다. 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장할 수 도 있다. 유지보수가 쉽다. 절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야 하는 반면 객체 지향 프로그래밍은 수정해야 할 부분이 클래스 내부의 멤버 변수혹은 메서드로 있기 때문에 해당 부분만 수정하면 됨 프로그램을 유연하고 변경 용이하게 만든다. 단점 처리속도가 상대적으로 느림 객체가 많으면 용량이 커질 수 있음 설계시 시간과 노력이 필요 3... 2021. 6. 28.
TDD , 단위 테스트, 리팩토링 TDD 테스트가 주도하는 개발 요구사항이 급변하는 개발문화에 적합한 개발방법론 테스트코드를 먼저작성한다. Red → Green → Refactor 사이클 실패하는 테스트를 먼저 작성하고, 테스트가 통과하는 코드를 작성하고, 통과하면 프로덕션 코드를 리팩토링 한다. 단위 테스트 코드 (Unit test) TDD 첫번째 단계인 기능 단위의 테스트 코드를 작성하는 것 TDD와 달리 테스트 코드를 먼저 작성해야 하는 것도 아니고, 리팩토링도 포함되지 않는다. 장점 빠른 피드백 기존방식 코드작성 Tomcat 실행 Postman과 같은 API 테스트도구로 HTTP 요청 System.out.println()으로 눈으로 검증 결과 다르면 Tomcat중지하고 코드 수정 코드수정시마다 톰캣을 다시 실행하는 시간을 줄일 수.. 2021. 6. 28.
[AWS] EC2 초기 설정 (Springboot, Java 11) AWS EC2에 접속하기 Mac OS: Mac은 ssh가 있어서, 명령어로 바로 접근 가능! 터미널을 열기 (spotlight에 terminal 입력) 방금 받은 내 Keypair의 접근 권한을 바꿔주기 sudo chmod 400 받은키페어를끌어다놓기 SSH로 접속하기 ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피 예) 아래와 비슷한 생김새! ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20 Window: ssh가 없으므로, git bash라는 프로그램을 이용! gitbash를 실행하고, 아래를 입력! ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피 예) 아래와 비슷한 생김새! ssh -i /path/my-key-pair.pem.. 2021. 4. 10.
[파이썬] True False null 정리 (자바와 비교) 파이썬 문법이 자바와 비교해서 다른 부분이 존재해서 정리하였다. 파이썬 boolean 값 설명 True, False "" 빈 문자열 False " " 공백만 있는 문자열 False "abc" 값이 있는 문자열 True [] , {}, () 빈 iterable 객체 False [1,2] 값이 있는 리스트 True 1 숫자 1, -1 (0을 제외한 모든 수) True 0 숫자 0 False 자바와 코드 비교 // java code String a = null; if (a == null) { true; } if (a != null) { false; } boolean b = true; if (b) { true } if (!b) { false; } # python a = None if a is None: True.. 2021. 3. 15.
[Java] 자바 식별자 예약어 식별자 다른것과 구분하기 위한 이름 (클래스 이름, 함수명(기능), 변수명) 클래스이름, 기능이름은 중복X. 변수 =* 그릇 저장소 ex) 10 240 년수 개월수, deleteStudentInformation (자바의 관례 c언어는 _ 사용) 첫글자: 문자 _ 1 $ 만 가능하다. 공백 특수문자 x 두번째: 문자 _ $ 숫자 가능하다. 공백 특수문자 x 대소문자는 항상 구분이 되어야한다. 설계도의 이름(클래스)은 대문자로 시작하지만 그외의 모든 식별자는 소문자로 시작 System, String는 빌트인된 설계도여서 대문자이다 . 검정색은 전부 식별자이다(함수이거나 등등) 자바의 예약어 자바에서 특별한 목적으로 사용되도록 미리 정해진 키워드 예약어는 식별자로 사용할 수 없다, 식별자 이름을 if 나 fo.. 2020. 11. 8.
[Java] 자바 특징과 설계도 JAVA 자바 개발도구 및 실행환경 설치 JDK(Java Development Kit) - 자바프로그램을 컴파일, 실행, 문서화 지원 JRE(java Runtime environment) 자바 프로그램을 실제로 실행하는 프로그램 java 특징 문법이 간단 객체지향 프로그래밍을 지원 → 동일한 제품(객체) 여러개 생성가능 고유한 기능을 제공하는 제품(객체) 플랫폼 독립적 플랫폼: HW / SW(운영체제) 다양한 오픈소스 (eclipse) 카톡(안드로이드) 카톡(애플) → 객체 종속적 올인원x 각기 객체를 만들어 유지보수 쉬움 설계도(클래스) → 제품(객체) 프로그램의 실행방법에 따른 구분 컴파일언어 (소스파일을 실행파일로 바꾸는 과정이 컴파일한다) C ,C++ JAVA 소스파일(코드작성) →[컴파일한다] .. 2020. 11. 8.
반응형