본문 바로가기

Algorithm231

[백준] 1979번 소수 찾기 사용 언어 - Python3 문제 - 1979번 소수 찾기 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 정답 최적화 - 정수론(수학) (정답 맞춘 여부 O) int(num**0.5) + 1 약수 구할 때, 모든 값으로 나누지 말고, 루트한 값까지만 나눠주기 n = int(input()) nums = map(int, input().split()) answer = 0 for num in nums: cnt = 0 if num > 1: for i in range(2,int(num**0.5)+1): if num % i == 0: cnt += 1 # 소수 아닌 경우 if cnt == .. 2023. 9. 21.
[백준] 15736번 청기 백기 사용 언어 - Python3 문제 - 15736번 청기 백기 15736번: 청기 백기 예제 입력 1의 경우 1, 2, 3번 깃발이 존재하고, 3명의 선수가 참가한다. 첫 번째 선수는 1의 배수의 번호를 가진 깃발을 뒤집는다. 초기에 청색이였던 깃발은 첫 번째 선수에 의해 모두 백기로 된 www.acmicpc.net 정답 최적화 - 정수론(수학) (정답 맞춘 여부 X) 수학적 사고는 문제를 빠르게 획기적으로 풀 수 있도록 해준다! 1. 직접 그려서 특징을 찾아내기 2. 제곱근 구현 루트후 정수 변환 n = int(input()) answer = int(n**0.5) print(answer) 레퍼런스 정답 깃허브 https://github.com/yyeongeun/codingtest/blob/main/BAE.. 2023. 9. 21.
[백준] 1090번 체커 사용 언어 - Python3 문제 - 1090번 체커 1090번: 체커 N개의 체커가 엄청 큰 보드 위에 있다. i번 체커는 (xi, yi)에 있다. 같은 칸에 여러 체커가 있을 수도 있다. 체커를 한 번 움직이는 것은 그 체커를 위, 왼쪽, 오른쪽, 아래 중의 한 방향으로 한 칸 www.acmicpc.net 정답 경우의 수 줄이는 완전 탐색 (정답 맞춘 여부 X) 아이디어 생각하기 1. 2차원 => 1차원으로 계산 가능 2차원 = 1차원 계산 + 1차원 계산 이동 횟수 = (만나려는 곳의 x좌표 - 각 체커의 x좌표) + (만나려는 곳의 y좌표 - 각 체커의 y좌표) 2. 우리의 집 중 한 곳에서 모이기 이동 횟수를 최소화하기 위해선, 가장 가운데 있는 좌표위치가 가장 덜 움직인다. => x의 범위 :.. 2023. 9. 10.
[백준] 2503번 숫자 야구 (완전탐색) 사용 언어 - Python3 문제 - 2503번 숫자 야구 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 정답 단순구현 (정답 맞춘 여부 X) 1. abc 세 숫자를 모두 만들어준다. abc는 겹치지 말아야하며, 1부터 시작한다 2. 스트라이크와 볼 수 확인해준다. abc와 입력받은 숫자의 위치가 같다면 스트라이크 += 1 위치는 다르지만, abc 안에 있다면 볼 += 1 3. 볼과 스트라이크 수가 입력받은 수와 같다면 counter +=1 하나 성공! 4. counter가 n과 같아지면, 모든 조건을 충족.. 2023. 9. 10.
[백준] 2530번 인공지능 시계 사용 언어 - Python3 문제 - 2530번 인공지능 시계 2530번: 인공지능 시계 첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0 www.acmicpc.net 정답 단순구현 (정답 맞춘 여부 O) 1. 초에 d(초)를 더해준다. 2. 초를 60으로 나눈 몫을 분에, 분을 60으로 나눈 몫을 시에 더해준다. 3. 나머지로 a,b,c를 업데이트해준다. a,b,c = map(int,input().split()) # 현재 시,분,초 d = int(input()) # 더해야할 시간(초) c += d b += c//60 a += b//60 c.. 2023. 9. 10.
[백준] 19532번 수학은 비대면강의입니다 사용 언어 - Python3 문제 - 수학은 비대면강의입니다. 19532번: 수학은 비대면강의입니다 정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $- www.acmicpc.net 정답 완전탐색 (정답 맞춘 여부 O) 1. 소거법 a,b,c,d,e,f = map(int,input().split()) x = (c*e-f*b)//(a*e-d*b) y = (c*d-f*a)//(b*d-e*a) print(x,y) 2. 완전 탐색 끝판왕 해답 각 정ㅅ들이 -99에서 999까지로 범위제.. 2023. 9. 10.
[백준] 14568번 2017 연세대학교 프로그래밍 경시대회 사용 언어 - Python3 문제 - 2017 연세대학교 프로그래밍 경시대회 14568번: 2017 연세대학교 프로그래밍 경시대회 규칙에 맞게 사탕을 분배하는 경우의 수를 출력한다. 택희, 영훈이, 남규가 받은 사탕의 수를 각각 A, B, C개라고 할 때, 서로 다른 (A, B, C) 순서쌍의 수를 세면 된다. 만일 규칙에 맞게 사탕을 분 www.acmicpc.net 정답 완전탐색 - 각 조건 생각하기 (정답 맞춘 여부 O) 1. range 범위 지정하기 영훈이는 1부터 N-3까지 가능 남규는 영훈보다 2이상이어야 하므로 영훈+2부터 N-1까지 가능 택희는 N에서 영훈과 남규를 뺀 나머지이고, 1보다 크며 짝수조건을 만족 => cnt += 1 N = int(input()) # 사탕 N개 cnt = 0 f.. 2023. 9. 10.
[백준] 1816번 암호 키 사용 언어 - Python3 문제 - 암호 키 1816번: 암호 키 현대 사회에서 통용되고 있는 많은 종류의 암호 시스템에서는, 매우 큰 소수의 곱으로 만들어진 수를 암호 키로 이용하는 경우가 많다. 현실적으로 매우 큰 수를 빠른 시간 내에 소인수분해하는 www.acmicpc.net 정답 모든 소인수가 1000,000보다 작은지 확인 1. 소인수 = 1을 제외한 약수 2. 2부터 1000000까지 수로 나누고 나누어떨어진다면, 100만 이하의 약수가 존재한다는 의미 NO를 출력하고 break => 모든 경우의 수를 생각하는 완전탐색 방법 3. 100만까지 갔다면, 100만 이하의 약수가 존재하지 않는다는 뜻이므로 YES를 출력 N = int(input()) for _ in range(N): S = int.. 2023. 9. 10.
[프로그래머스 lv 1] 순열 검사 사용 언어 - Python3 문제 - 순열 검사 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 시간초과없이 순열 검사 (정답 맞춘 여부 O) arr 오름차순 정렬후 각 위치에 있는 값이 i+1과 같지 않다면 False 아니라면 원래 값인 True return # 시간 초과 def solution(arr): answer = [] for i in range(1,max(arr)+1): if i in arr: answer.append(1) else: answer.append(0) if sum(answer) == max(arr): result = True e.. 2023. 6. 23.
[프로그래머스 lv 1] 자릿수 더하기 사용 언어 - Python3 문제 - 자릿수 더하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 map 함수 사용하기 (정답 맞춘 여부 O) n을 str로 만들고 int로 변환해 list로 저장해주기 def solution(n): a = list(map(int,str(n))) return sum(a) 레퍼런스 정답 깃허브 GitHub - yyeongeun/codingtest: 코딩테스트 공부 코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHu.. 2023. 6. 23.