전체 글29 2023-10-26 TIL(프로그래머스) 바탕화면 정리 드래그를 최상단 좌측 → 최하단 우측 으로 해야 최단 거리이므로 드래그를 시작 하기 위한 x좌표는 파일이 있는("#"표시가 있는) 곳의 x,y 값들 중 최솟값일 때 y좌표는 파일이 있는("#"표시가 있는) 곳의 x,y 값들 중 최댓값일 때의 + 1 (+1 을 하는 이유 : 파일의 좌상단의 꼭지점이 파일의 시작점이므로 파일을 전부 포함하려면 끝나는 지점인 파일의 우하단) 그렇기때문에 파일이 있는 곳들의 좌표를 구해서 그 중 x,y의 최솟값 조합, 최댓값 조합을 구하면 되겠다고 생각하고 이를 기반으로 코드를 짰다! JAVA public static int[] solution(String[] wallpaper) { int maxX = Integer.MIN_VALUE; int minX = Inte.. TIL 2023. 10. 26. 2023-10-25 TIL(객체 지향 프로그래밍의 특징, 프로그래머스) 객체 지향 프로그래밍의 특징 1. 추상화 객체에서 공통된 속성과 행위를 추출 하는 것 → 추상화를 해두면 코드 구현할 때 생각할 것들을 줄일 수 있다. 공통의 속성과 행위를 찾아서 타입을 정의하는 과정 추상화는 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단하게 만드는 것 2. 캡슐화 데이터 구조와 데이터를 다루는 방법들을 결합 시켜 묶는 것 (변수와 함수를 하나로 묶는 것을 뜻함) 낮은 결합도를 유지할 수 있도록 설계하는 것 3. 상속 클래스의 속성과 행위를 하위 클래스에 물려주거나 하위 클래스가 상위 클래스의 속성과 행위를 물려받는 것 새로운 클래스가 기존의 클래스의 데이터와 연산을 이용할 수 있게 하는 기능 4. 다형성 하나의 변수명, 함수명이 상황에 따라 다른 의미로 해석 될 .. TIL 2023. 10. 25. 2023-10-24 TIL(프로그래머스) 오늘 git으로 협업하기 위한 강의를 들었는데 이해가 되지 않는 부분이 있어서 다시 보면서 머릿속에서 정리를 한 다음에 TIL로 써야 할 것 같다! 달리기 경주 Java 풀이 코드 public static String[] solution(String[] players, String[] callings) { // for문 2개를 이용해서 선수를 찾으면 프로그래머스 테스크 케이스 8번부터 // 시간 초과가 떠서 HashMap을 사용! HashMap humanHashMap = new HashMap(); for(int i = 0 ; i < players.length ; i ++){ humanHashMap.put(players[i],i); // key,value 쌍으로 선수 이름에 value부여 } for(Str.. TIL 2023. 10. 24. 2023-10-23 TIL(컬랙션) 1. ArrayList 배열(Array)처럼 일렬로 데이터를 저장하고 조회하여 순번값(인덱스)로 값을 하나씩 조회할 수 있습니다. Array처럼 크기를 고정하여 생성하는 것을 정적배열 이라면 ArrayList 처럼 크기가 가변적으로 늘어나는 것을 동적배열 이라고 합니다. 기능 선언 : ArrayList intList 생성 : new ArrayList(); 초기화 : 사이즈를 지정하는것이 없기 때문에 초기화가 필요 없습니다. 값 추가 : intList.add({추가할 값}) 값 수정 : intList.set({수정할 순번}, {수정할 값}) 값 삭제 : intList.remove({삭제할 순번}) 전체 출력 : intList.toString() 전체 제거 : intList.clear() 2. LinkedL.. TIL 2023. 10. 23. 2023-10-20 TIL (추상클래스와 인터페이스의 차이점) 추상클래스 추상클래스( 미완성된 메서드를 가진 미완성된 클래스)를 사용하는 경우 클래스들의 공통된 특징을 묶고 싶을경우 부모 클래스의 어떤 메소드를 자식 클래스에서 반드시 구현해서 사용하게 할 때 → 반드시 오버라이딩을 해야하는 상황에서 사용! abstract class A{ private int a; ... abstract int somethingMethod(); ... } Class B extends A{ private int b; @Override int somethingMethod(){ .... return 0; } } 추상 클래스를 상속받으면 추상 클래스의 추상 메서드는 반드시! 반드시 구현해야 한다 인터페이스 빈 메소드를 정의하고, 인터페이스를 상속받는 클래스는 빈 메소드를 정의하여 사용해야 .. TIL 2023. 10. 20. 2023-10-19 TIL (git, 프로그래머스) 어제 마무리한 개인과제(키오스크 만들기)에다가 추가 구현할 항목들을 추가하였다 완료하고 git을 이용해서 깃허브에 올리려고 했는데 역시나 쉽지 않았다. 레퍼지토리를 삭제하고 다시 하고 다시 올리고 아주 난리도 아니었다. 튜터님께 중간중간 여쭤보고 해서 우여곡절 끝에 등록을 완료하였다 하던 중 알게 된 것 깃허브에서 레퍼지토리를 삭제 깃허브에서 삭제하는 것은 쉬웠는데 git local 저장소에서도 삭제를 해줘야 했다 git local 저장소에서 레퍼지토리 삭제 이전에 저장해 놨던 레퍼지토리를 지우기 위해서 $ git remote remove origin git remote remove origin 을 입력하여 준다 그 다음 복사하고 git bash에 입력하여 주면 끝이 난다!(물론 전에 git init, .. TIL 2023. 10. 19. 2023-10-18 TIL (프로그래머스) 오늘 개인과제가 발제가 발표되어 과제 마무리하느라고 날짜가 넘어가고 작성하게 되었다 '배열 만들기2' 문제였는데 파이썬 def solution(l, r): answer = [] for a in range(l,r+1): if all(num in ['0','5'] for num in str(a)): answer.append(a) if len(answer) == 0: answer.append(-1) return answer 파이썬으로는 all()함수를 사용해서 0과 5로만 이루어진 숫자를 구별해 낼 수 있어서 간편했는데 자바는 내가 일일이 직접 짜야했다. JAVA class Solution { public int[] solution(int l, int r) { List arrayList = new ArrayL.. TIL 2023. 10. 19. 이전 1 2 3 4 5 다음