[프로그래머스 | 파이썬 / 자바스크립트] 순서쌍의 개수(코딩테스트 입문/ level 0)

2023. 2. 22. 20:24·Problem Solving/프로그래머스
반응형
문제

https://school.programmers.co.kr/learn/courses/30/lessons/120836

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

🐍파이썬
def solution(n):
    answer = 0
    for i in range(1, int(n**(1/2))+1):
        if n % i == 0:
            answer += 1
    answer *= 2
    if n % n**(1/2) == 0:
        answer -= 1
    return answer

1️⃣ n의 루트만큼 반복문을 돌며 n % i이 나누어 떨어지는 경우를 카운트한다.

2️⃣ 위의 반복문은 n의 루트만큼만 돌았기 때문에 모든 경우의 수를 구하기 위해 answer에 2를 곱한다.

3️⃣ 만약 n이 n의 루트로 나누어 떨어진다면 그 몫도 n**(1/2)가 되기 때문에 이 경우는 중복제거를 위해 answer에서 하나를 빼준다.

ex) n이 100인 경우 n의 루트인 10으로 나누면 순서쌍은 (10, 10)이 되기 때문에 중복되는 경우 -1을 진행

 

 

다른 풀이 방법

def solution(n):
    return len(list(filter(lambda v: n % (v+1) == 0, range(n))))

n=6일 때 n이 (0+1, 1+1, ..., 6+1)으로 나누어 떨어지는 경우를 추려 리스트에 넣고 리스트의 길이를 리턴

 

💡 filter()

  • 여러 개의 데이터로 중 원하는 조건의 데이터를 추려낼 때 사용하는 파이썬 내장함수
  • 기본문법: filter(조건 함수, 순회 가능한 데이터)
  • 참고: https://www.daleseo.com/python-filter/

 


def solution(n):
    answer = 0 
    for i in range(n):
        if n % (i+1) == 0:
            answer += 1
    return answer

for문을 사용한 풀이

 

 

 

🐥자바스크립트
function solution(n) {
    let answer = 0;
    for(let i = 1; i <= n; i++){
        if(n % i == 0){
            answer++;
        }
    }
    return answer
}

 

 

다른 풀이 방법

function solution(n) {
    let ans = 0;
    for (let i = 1; i < Math.sqrt(n); i++)
        if (n%i === 0) ans+=2;
    return Number.isInteger(Math.sqrt(n)) ? ans+1 : ans;
}

루트만큼 돌면서 n % i가 나누어 떨어지는지 확인하고 나누어 떨어지면 ans에 2를 더한다.

끝으로 루트값이 integer인지 확인하고 integer이면 +1, 아니면 그냥 ans만 리턴

원리: n이 어떤 정수의 제곱이라면 루트값은 정수이다.

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Problem Solving > 프로그래머스' 카테고리의 다른 글

[프로그래머스 | 파이썬 / 자바스크립트] 삼각형의 완성조건 (2)(코딩테스트 입문/ level 0)  (0) 2023.02.23
[프로그래머스 | 파이썬 / 자바스크립트] 모음제거(코딩테스트 입문/ level 0)  (0) 2023.02.22
[프로그래머스 | 파이썬 / 자바스크립트] 둘만의 암호(연습문제/ level 1)  (0) 2023.02.22
[프로그래머스 | 파이썬 / 자바스크립트] 안전지대(코딩테스트 입문/ level 0)  (0) 2023.02.22
[프로그래머스 | 파이썬 / 자바스크립트] 자릿수 더하기(코딩테스트 입문/ level 0)  (0) 2023.02.21
[프로그래머스 | 파이썬 / 자바스크립트] n의 배수 고르기(코딩테스트 입문/ level 0)  (2) 2023.02.21
'Problem Solving/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 | 파이썬 / 자바스크립트] 모음제거(코딩테스트 입문/ level 0)
  • [프로그래머스 | 파이썬 / 자바스크립트] 둘만의 암호(연습문제/ level 1)
  • [프로그래머스 | 파이썬 / 자바스크립트] 안전지대(코딩테스트 입문/ level 0)
  • [프로그래머스 | 파이썬 / 자바스크립트] 자릿수 더하기(코딩테스트 입문/ level 0)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기 (505)
      • 프로그래밍 (41)
        • Programming (1)
        • C | C++ (6)
        • Java (28)
        • Python (5)
      • 웹 프로그래밍 (108)
        • HTML | CSS (5)
        • JavaScript | TypeScript (41)
        • React (25)
        • Vue.js (0)
        • Next.js (18)
        • Spring & Spring Boot (13)
        • JSP & Servlet (1)
        • DB (4)
      • 웹 프로젝트 (77)
        • 웹 프로젝트 (22)
        • 🥨스낵몰 (3)
        • 👨‍👨‍👧‍👧소셜 가계부 (26)
        • 🌜꿈 일기장 (11)
        • 🔮포트폴리오 사이트 (11)
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램 (0)
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼 (0)
        • 😺Just Meow It: 조언 사이트 (2)
        • 📕Workly: 교대근무 다이어리 (1)
      • 앱 프로그래밍 (26)
        • Flutter (24)
        • Kotlin (2)
      • Problem Solving (166)
        • 백준 (52)
        • 프로그래머스 (79)
        • SWEA (29)
      • Computer Science (40)
        • 알고리즘 (14)
        • 컴퓨터 네트워크 (18)
        • 이산수학 (8)
      • Developer (47)
        • 후기 (4)
        • 자료정리 (4)
        • 취업 | 취준 (9)
        • SSAFY (1)
        • 웹개발 교육 프로그램 (9)
        • TIL (20)
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    클론 프로젝트
    컴퓨터네트워크
    뉴렉처
    React
    공식문서
    프로그래머스
    구현
    프로젝트
    SWEA
    Jiraynor Programming
    포트폴리오
    블로그 제작
    자바스크립트
    타입스크립트
    mysql
    AWS
    ZeroCho
    bfs
    플러터
    자바
    백준
    spring boot
    강의내용정리
    웹사이트
    d3
    Next.js
    Til
    파이썬
    알고리즘
    리액트
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[프로그래머스 | 파이썬 / 자바스크립트] 순서쌍의 개수(코딩테스트 입문/ level 0)
상단으로

티스토리툴바