코테를 풀며...

김민아·2025년 9월 9일
post-thumbnail

함수와 메서드

코딩테스트를 풀며 다른 사람의 풀이를 보았을 때 처음 보는 함수와 메서드를 많이 배웠고 이를 정리하기위해 이 블로그를 쓴다


그럼 여기서 함수와 메서드의 차이는 무엇일까?

함수(function): 독립적인 코드 블록
- functionName()과 같이 이름으로 직접 호출
메서드(method): 특정 객체에 속한 함수, 호출하는 객체가 있음
- object.method()와 같이 점표기법을 사용, 객체를 통해 호출
-> 모든 메서드는 함수이지만, 모든 함수는 메서드가 아님


length

Array인스턴스의 속성으로 배열, 문자열의 요소 수나 길이를 나타냄

  • 예시
for(let i = 0; i < 100; ++i){
	if(n[i] === undefined)
    	break;

몰랐을 때는 위 코드와 같이 if문을 적어 문제를 해결했지만
이러한 방식은 배열의 길이를 모르는 상태에서 100보다 크기보다 작다는 가정에 따라 작성하기 때문에 가정을 벗어난 경우에서는 사용하기 힘들고 쓸데없는 코드가 많아 계산 시간이 걸린다

  • 예시
for(let i = 0; i < n.length; ++i)

코드를 줄이고 계산 시간도 줄일 수 있다


sort

배열을 정렬하기 위해 사용하는 함수

오름차순: 배열.sort((a,b) => a-b);
내림차순: 배열.sort((a,b) => b-a);

화살표 함수를 이용하여 작성되었다

a, b에 배열 내에 두요소를 전달해서 a-b가 양수면 b가 앞으로 이동해서 작은 수가 앞으로 오게 된다
하지만 함수 내에 파라미터가 입력되지 않으면 문자열의 유니코드대로 정렬한다 (오름차순 정렬)

  • 예시
    보통 오름차순 정렬을 하기위해 아래와 같이 코드를 작성한다
for(let i = 0; i < sides.length; i++)
	for(let j = 0; j < sides.length; j++)
	    if(sides[i] < sides[j]){
    		answer = sides[i];
            sides[i] = sides[j];
            sides[j] = answer;
        }
  • 예시
const [long, a, b] = sides.sort((a,b) => a-b);

push

배열의 끝에 명시된 요소를 추가하고 배열의 새로운 길이를 반환하는 메소드
배열에 요소를 추가할 때에는 push()메소드를 사용함, 이 메서드를 몰랐다면 이러한 방식으로 문제를 풀기 어려웠을 듯하다

  • 예시
for(let i = num1; i < num2+1; i++){
	answer.push(numbers[i]);
}

0개의 댓글