Home
jimin's blog
Cancel

섹션1. 객체 지향 설계와 스프링 - 2

좋은 객체 지향 프로그래밍이란? 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 “객체”들의 모임으로 파악하고자 하는 것이다. 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프 트웨어 개발에 많이 사용된다 -> 다형성(Polymorphism) 다형성 상단...

섹션1. 객체 지향 설계와 스프링 - 1

스프링이 만들어지게 된 계기 스프링 이전에 있었던 프레임워크 -> EJB(자바진영의 표준 기술) EJB 장점 : 컨테이너, 트렌젝션, 분산 기술 등 고급 기술을 지원 & ORM 사용 가능 단점 : 비쌈 & 복잡하고 성능이 좋지 않음 불편한 EJB를 사용하던 2명의 개발자(로드 존슨, 게빈 킹)가 ...

Github Actions 사용하여 S3에 올리기

순서 AWS IAM 사용자 등록 AWS S3 버킷 생성 github에 secret 생성하기 .github/workflows 디렉토리 생성 후 @@.yml 파일 생성 코드 작성 1. AWS IAM 사용자 등록 github actions에서 버킷에 파일을 올리기 위해서는 권한이 부여된 IAM 사용자가 필요합니다. IAM ...

16967번(타노스)

첫 시도 투포인터로 가능할지 확인 -> 문자열이 그대로 사용되는 것이 아니라 숫자가 제거되어 기존 문자열에서 변경이 되기 때문에 투포인터로는 구현 불가 해결 먼저 0과 1의 총 개수를 구하고 그 수를 각각 2로 나눈다. 나눈 수가 문자열에서 지워야 할 0과 1의 갯수다. 문제 조건을 고려해 봤을 때 사전순으로 빠르기 위해서는...

2234번(성곽)

첫 시도 단순 bfs로 구현 가능할 것으로 생각했다 문제 1. 벽 방향 정보를 구하기 위해서는 입력받은 값을 이진수로 변환해서 계산해주어야 한다. 문제 2. 단순 bfs로는 하나의 벽을 제거하여 얻을 수 있는 가장 넓은 방의 크기를 구할 수 없다. 구현 실패 해결 해결 1. 입력받은 값을 이진수로 변환해서 계산해도 되지만 ...

프로그래머스(베스트 앨범)

첫 시도 내용 해결 내용 import java.io.*; import java.lang.reflect.Array; import java.util.*; 참고 직접구현

프로그래머스(위장)

첫 시도 이 문제에서 어떤 의상인지는 중요 x, 의상의 종류가 핵심 의상의 종류를 key로, 종류의 개수를 value로 하는 map 생성 의상의 조합을 구하는 것이므로 map의 value를 다 곱해준다 -> 이때 의상의 종류 중 해당 종류의 의상을 안입는 다는 선택지도 있기 때문에 value + 1을 해준다 최소 옷을 1개는 입...

프로그래머스(전화번호 목록)

첫 시도 입력받은 값을 key로 하여 map 생성 입력 값의 서브스트링 길이를 늘려가면서 map에 서브스트링과 동일한 키가 있는지 반복 phone_book배열의 길이를 N, 각 전화번호의 길이를 M이라고 했을때 시간 복잡도는 O(NM)이다 -> 10^6 * 2 * 10 해결 import java.util.*; class So...

프로그래머스(폰켓몬)

첫 시도 set을 이용하여 중복 제거 다른 종류의 폰켓몬을 최대 N/2개 가지고 싶다 -> 폰켓몬의 종류가 N/2보다 작다면 최대값은 폰켓몬의 종류 개수가 된다 시간 복잡도는 O(10^5)이다 해결 import java.util.*; class Solution { public int solution(int[] num...

프로그래머스(완주하지 못한 선수)

첫 시도 participant 배열에 있는 선수들의 이름을 key로 하여 map을 만든다 동명이인이 있을 수 있으므로 value는 Integer로 하여 해당 이름을 가진 선수의 수를 나타내도록 한다 completion 배열의 선수 이름들을 key로 하여 value를 가져와 1을 뺀다. map을 순회하면서 0보다 큰 value를 가지고...