본문 바로가기

분류 전체보기157

1.2코딩과 디버깅 코딩테스트를 빠르고 정확하게 풀기위해서는 디버깅을 잘 수행하는 것이 중요하다. 왜냐하면, 한 번에 원하는 대로 작동하는 코드를 짜는 마술은 없기 때문이다. * 잘 짠 코드란 무엇일까? 평가 기준 시간 복잡도 >>>>> 공간 복잡도 > 가독성 -> 각각의 개념에 대해선 다른 게시글에서. * 코드를 짤 때 흔히 하는 실수 1. 존재하지 않는 요소에 접근(ex. 배열 인덱스 범위 초과) 2. 파이선에서는 배열 슬라이싱 기능을 사용할 때 [시작 위치(포함), 종료 위치(포함 안 함), 간격]이라는 걸 항상 기억 3. '~보다 크다/작다' 조건으로 조건식을 만들 떄, 조건의 경계값을 제대로 체크하지 않아 의도하지 않게 동작하기도 함 4. 연산자 우선순위도 빠질 수 없음(헷갈리면 무조건 명시적으로 괄호 표기) 5... 2023. 7. 20.
1.1 코딩 테스트란? * 코딩 테스트란? 주어진 문제를 컴퓨터가 이해할 수 있는 언어(코드)로 작성하여 해결하는 것을 의미 문제의 요구사항을 파악(분석)하고 풀어나갈 방식을 계획(설계)하는 능력이 요구됨 * 코딩 테스트를 보는 이유 1. 문제 해결 과정을 보는 것 2. 사고력 증진 3. 똑같은 결과를 빠르고 효율적으로 푸는 것 -> 여러가지 변인이 통제된 동일한 환경과 상황에서 문제를 얼마나 잘 파악하고 효율적으로 해결하는지를 보는 것 * 코딩 테스트 연습시 고려사항 1. how도 중요하지만 why에도 집중할 것 -> 이 알고리즘을 왜(why) 사용했는지 생각한 후 어떻게(how) 활용했는지 끊임없이 생각하고 고민하기 2. 문제를 읽고 스스로 풀어보는 시간을 가질 것 -> TO가 발생하거나 해결방법이 당장 생각나지 않아도 알.. 2023. 7. 20.
OOP.2.상속과 다형성 이번 글에서 알아볼 객체지향의 특징은 상속과 다형성 입니다. 먼저 추상화와 캡슐화를 통해 정의한 객체(클래스)들은 다양한 관계를 갖게 되는데요. 그 중 상위와 하위 구조를 가지게 되는 하이어라키 구조에 속한 관계들이 있습니다. 상속은 대표적인 하이어라키 구조입니다. 여러 클래스들의 공통적이고 일반적인 특성을 추출해 좀 더 추상화 레벨이 높아 일반적인 상위 클래스로 정의 할 수 있습니다. 그 후 하위 클래스 정의시 중복되는 부분은 재정의 없이 상위 클래스의 필드와 메소드를 '상속'받아 사용할 수 있습니다. JAVA에서는 Extends라는 키워드로 상속을 지원하고 단일 상속만을 지원합니다. java는 상속을 편하게 지원해주는 super와 this라는 키워드를 제공함으로써 부모 클래스로 부터 물려받은 다양한 .. 2023. 7. 14.
OOP.2.추상화와 캡슐화 - 2 이번 주제는 캡슐화 입니다. 저번 글에서 캡슐화 부분을 간단히 언급하고 넘어갔기 때문에 자세히 살펴보려 합니다. 먼저 캡슐화의 기본 개념은 객체를 추상화해 나온 정적 특성과 동적 특성을 한데 묶어 관리하는 것 입니다. 캡슐화로 얻어지는 효과는 두 가지가 있습니다. 데이터 보호와 절차 은닉입니다 데이터 보호는 정적 모델링을 통해 추출된 Field 데이터 접근 권한을 클래스 내부로 제한함으로써, 외부에서 데이터 조작이 불가능 하도록 보호합니다. 데이터 조작은 오직 공개된 Method를 통해서만 가능합니다. 또 클래스 외부에서 Method를 단순 호출하여 사용하므로 내부에서 어떤 절차로 메소드가 작동하는지 절차적 은닉이 가능해집니다. 이것을 절차 은닉이라고 부릅니다. Java에서는 Access Modifier.. 2023. 7. 6.
728x90