전체 글

1. 문제에서 주어진 예제의 입출력에서 단위 unit의 형태를 가진 사각형을 찾은 후에 이것이 w, h의 최대공약수와 관련이 있다는 것을 발견함 2. 그 후에는 최대공약수를 구하는 메소드와 unit사각형내의 비어 있는 사각형의 개수를 unit사각형의 가로와 세로를 활용하여 규칙을 찾아내야 하는데 아무리 머리를 굴려봐도 나오지 않음 이 규칙을 발견하더라도 최대공약수를 구하는 메소드는 구글링을 하지 않는 이상 스스로 못짬 (unit의 빈 사각형 갯수) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class Solution { public long solution(long w, long h) { long gcd = gcd(w,h); long answer = w*h - ..
좋은 코드란 무엇인가 '좋은 코드란?' 읽기 쉬운 코드(왜 읽기 쉬워야 하지?) 테스트가 용이한 코드(테스트가 용이하다는 것은 무엇을 의미하는 것일까?) 중복이 없는 코드? 더 읽어보기 >https://jbee.io/etc/what-is-good-code/ Object oriented Programming 객체 지향 프로그래밍, 저도 잘 모르고 너무 거대한 부분이라서 넣을지 말지 고민을 했습니다만, 면접에서 이 정도 이야기하면 되지 않을까? 하는 생각에 조심스레 적어봤습니다. 객체 지향 프로그래밍 이전의 프로그래밍 패러다임을 살펴보면, 중심이 컴퓨터에 있었다. 컴퓨터가 사고하는대로 프로그래밍을 하는 것이다. 하지만 객체지향 프로그래밍이란 인간 중심적 프로그래밍 패러다임이라고 할 수 있다. 즉 현실 세계를..
[ CI (Continuous Integration) ] CI란 팀의 구성원들이 작업한 내용을 정기적으로 통합하는 것을 의미한다. 풀어서 이야기하면 소프트웨어가 거대해지고 복잡해지면서 팀 단위로 개발을 하게 되었고 분업과 협업이 필수가 되면서 하나의 프로젝트를 여러 명으로 구성된 한 팀이 작업을 하게 되고 분업과 협업 과정에서 일을 나눠 각각 할당된 부분만 작업을 하게 되었다. 그리고 팀멤버들은 자신이 담당해서 하고 있는 부분의 소스코드를 정기적으로 GIT, SVN과 같은 형상 관리 시스템(Soucr Code Management)에 Submit하는데 이 각각의 팀 멤버들로부터 Submit된 소스코드들을 정기적으로 통합하는 것을 CI라고 하고 이것을 시행해주는 프로그램을 CI tool이라고 한다. CI 시..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 class Solution { public int solution(String s) { int answer = s.length(); // s.length()/2까지만 하면 됨 for(int i=1; i1) compressedNum+=(Math.log10(accumNum)+1); // System.out.println(i+" "+compressedNum); answer = Math.min(answer, compressedNum); } return answer; } } Colored by Color Scripter cs 1 2 3 4 5 6 7..
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import java.util.*; class Solution { public int[] solution(String[] id_list, String[] report, int k) { Map userMap = new HashMap(); for(String id : id_list) userMap.put(id, new User(id)); // System.out.println(userMap.size()); List bannedIdList = new ArrayList(); for(String r : report){ String[] st..
// .로 시작하거나 .로 끝나는 경우 .삭제 (문자 양 옆의 .(dot)삭제) kakaoId = kakaoId.replaceAll("^[.]|[.]$", ""); // .이 2개 이상일 경우 하나의 .으로 대체함 kakaoId = kakaoId.replaceAll("[.]{2,}","."); // kakaoId에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. kakaoId = kakaoId.replaceAll("[^a-z0-9-_.]",""); ^[ ] 과 [^ ] 2개가 조금 헷갈렸는데 ^가 안쪽에 있는 [^ ]에서 ^는 not을 의미함
int[] arr = Arrays.copyOfRange(array, i, j); // array배열의 i
Integer.parseInt([string자료형의 숫자], N); System.out.println(Integer.parseInt("10", 3)); -> 3 공식doc 예시 Examples: parseInt("0", 10) returns 0 parseInt("473", 10) returns 473 parseInt("+42", 10) returns 42 parseInt("-0", 10) returns 0 parseInt("-FF", 16) returns -255 parseInt("1100110", 2) returns 102 parseInt("2147483647", 10) returns 2147483647 parseInt("-2147483648", 10) returns -2147483648 parseIn..
import java.util.*; import java.util.stream.*; (Collectors 쓰려면 명시해줘야함) int d = new int[]{}; List list = Arrays.stream(d).sorted().boxed().collect(Collectors.toList()); Arrays.stream(d) -> stream 변환 .sorted() -> 배열의 오름차순을 요구하는 문제라서 sorted() 메서드 사용 .boxed() -> primitive타입을 wrapper클래스로 박싱하여 반환한다 .collect() -> 필터링 또는 매핑된 요소들을 새로운 컬렉션에 수집하고 이를 리턴한다.
메서드 부분에서 'alt + enter' ex) add static import for assert.assertthat... 클릭
배게
백엔드