ssung_항해일지/항해99_프로그래밍 기초(알고리즘) 7

알고리즘 - 마지막(with Test)

오늘은 알고리즘의 마지막날 시험은 운영매니저님이 주신 힌트 덕분에 수월하게 마무리를 했던 것 같다. 시험이 끝나도.. 아니 끝났지만! 바로 이어진건, 기술매니저님이 주신 과제를 진행해야 했기에 책상, 모니터와 머리를 맞대기도 전에 매니저님이 따스하게 다가오셨다.. 마주하고, 다시 건내받은 과제는 금일 23:00까지 solid를 마무리하고, 수정한 코드를 깃헙에 올린 후 링크 제출을 통해 확인을 받는 것! 하지만 지금 TIL을 적는 시간은 02:00를 가리키고 있다. 이 말은 즉슨, 완료하지 못하고 나가떨어질 것 이라는 예상이 펼쳐진다. solid를 진행하며 오늘 이해한 건, SRP DIP OCP 이다. 그나마 이 마저도 바로바로 이해는 되지 않는 편이었던 것 같다. 방금 전 까지 LSP를 팀원들과 코드를..

알고리즘 - 5일차

etc = ((money-pay) / 500) + ((money-pay) % 500) / 100 + (((money-pay) % 500) % 100) / 50 + ((((money-pay) % 500) % 100) % 50) / 10 + (((((money-pay) % 500) % 100) % 50) % 10) / 5 + ((((((money-pay) % 500) % 100) % 50) % 10) % 5) / 1; 해당 코드를 for 문을 사용하여 간단하게 만들어 볼까요?! int change = money - pay; int allCoin = 0; int[] coin = new int[] {500, 100, 50, 10, 5, 1}; for (int i = 0; i < coin.length; i++) ..

알고리즘 - 4일차 (모의고사 Review)

제곱근 Math.sqrt() Math.sqrt(9) - 3 출력 x의 n제곱 값 출력 Math.pow(x, n); Math.pow(3, 2); = 9 문제 1번 기원이는 오늘 항해99를 시작했다. 성격이 급한 기원이는 항해 1일 차부터 언제 수료를 하게될 지 궁금하다. 항해 1일 차 날짜를 입력하면 98일 이후 항해를 수료하게 되는 날짜를 계산해주는 알고리즘을 만들어보자. 제한 조건 : 1 ≤ month ≤ 12 , 1 ≤ day ≤ 31 (2월은 28일로 고정합니다, 즉 윤일은 고려하지 않습니다.) public class Main { public String solution(int month, int day) { String answer = ""; int[] days = {31, 28, 31, 30, ..

알고리즘 - 3일차

Split 메서드 - 구분자를 기준으로 문자열을 잘라 배열로 입력할 때 사용하는 메서드 사용방법 - split (String regex); : 구분자를 바탕으로 배열 형식으로 문자열을 잘라준다. - split (String regex, int limit); : 위의 방식과 동일하게 배열 형식으로 문자열을 잘라주지만, limit 수만큼 잘라준다. split (String Rex); - [ " " ] 공백 " " 으로 분리 public static void main(String[] args) { String str = "Hello World"; String[] ArrayStr = str.split(" "); for (String s : ArraysStr) System.out.println(s); } 출력 값..

알고리즘 : 개인보충학습

문자열의 같음을 비교하는 건! equals() !!!!! String.equals("---") seoul[i].equals("Kim")!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! == 만이 같음을 비교하는 것이 아니다! 문자열은 equals()!!!!!!!!!! 김서바아아앙! 방식 1 - 숫자를 문자열로 바꾼 후 다시 문자열을 추출해 int형으로 바꿔주는 형식! 방식 2 - 단순하게 숫자를 10으로 나눈 나머지를 더하고, 그 나머지를 다시 10으로 나눠서 더하고.... char는 문자 while문 = 조건식이 성립하는 동안 진행! for 는 while과 동일하지만! 반복횟수를 알고 있을 때 진행! while은 반복횟수를 모를 때 사용한다! 총평! 간만에 잠을 좀 잤지만! 잠이 부족하다..

알고리즘 - 2일차 (23.01.28)

없는 숫자 더하기 - numbers에서 찾을 수 없는 0~9까지의 숫자를 모두 찾아 더한 수를 return numbers result [1, 2, 3, 4, 6, 7, 8, 0] 14 [5, 8, 4, 0, 6, 7, 9] 6 나의 풀이 및 부족한 점 class Solution { public int solution(int[] numbers) { int answer = 45; for (int n : numbers){ answer -= n; } return answer; } } 사실 처음에는 이 방법을 생각치 못하다 구글링을 하고 팀원들과 페어를 하게되면서 공유하게 된 코드! 기존의 내가 구현하고 싶었던 코드를 스스로 구현해보고, 추후에 보강을 해보자.. (문제를 단순하게 바꿔 읽는, 다양하게 생각을 할 ..

알고리즘 - 1일차

객체지향의 4대 특성 캡슐화 : 정보의 은닉 => 세부사항을 감추는 것, 변경하기 쉬운 객체를 만들기 위해 사용, 객체 내부 접근 제한(유연한 설계 가능) 상속 : 재사용 => 코드 중복제거로 재사용성 증가, 클래스 간의 체계화 된 구조파악, 상위 클래스만 수정하므로써 일관성 유지 추상화 : 모델링 => 공통 부분을 모아 상위 개념으로 새로 선언, 공통적이고 중요한 것만 모델링, 외부노출 된 인터페이스만 사용 다형성 : 사용의 편의 => 객체가 가지고 있는 고유의 특성에 따라 다른 여러가지 형태로 재구성 (오버로딩, 오버라이딩을 생각해라!) 객체지향의 설계 5원칙 단일 책임의 원칙 (SRP - Singe Responsibility Principle) => 단 하나의 책임을 갖는 객체 : 역할과 책임을 클..

728x90