본문 바로가기

Algorithm/구현92

[프로그래머스] PCCP 모의고사 2회 1번 실습용 로봇 사용 언어 - Python3 문제 - 실습용 로봇 https://school.programmers.co.kr/learn/courses/15009/lessons/121687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 구현 방향에 따라 바뀌는 x, y 위치 잘 파악하기 개인적으로 지금까지 PCCP 문제중에 제일 쉬웠음 0. 시작위치 x=0, y=0 / 시작방향 a = 0 오른쪽 90도 회전 : a+90 왼쪽 90도 회전 : a-90 360도 넘거나 0보다 작아지면 -360, +360으로 방향 업데이트 1. 명령어에 따라 바뀌는 x값, y값을 저장해준.. 2023. 12. 15.
[프로그래머스] PCCP 모의고사 1회 2번 체육대회 사용 언어 - Python3 문제 - 체육대회 https://school.programmers.co.kr/learn/courses/15008/lessons/121684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 구현 가능한 모든 조합(순열) 구하기 (내 풀이) permutations 가능한 사람 인덱스의 모든 조합 from itertools import * from itertools import permutations (순열) 1. 사람인덱스 설정하기 5명일 경우, p_index= [0,1,2,3,4] 2. 가능한 사람 인덱스의 모든 조합(순열).. 2023. 12. 13.
[프로그래머스] PCCP 모의고사 1회 1번 외톨이 알파벳 사용 언어 - Python3 문제 - 외톨이 알파벳 https://school.programmers.co.kr/learn/courses/15008/lessons/121683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 구현 외톨이 알파벳이 아닌 경우 제거하기 (내 풀이) answer 에 중복을 제거한 외톨이 알파벳 후보를 저장해주고, 외톨이 알파벳이 아닌 경우를 제거해줬다. 1. 개수가 한개인 알파벳은 외톨이 알파벳이 아니다. string.count(string[i]) == 1 2. 여러 개여도 나뉘어 있지않고, 한 부분으로 뭉쳐있으면 외톨이 알파.. 2023. 12. 13.
[프로그래머스 lv 3] PCCP 기출 3번 아날로그 시계 사용 언어 - Python3 문제 - PCCP 기출 3번 아날로그 시계 https://school.programmers.co.kr/learn/courses/30/lessons/250135?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 구현 초침이 시/분침과 만나는 경우 생각하기 1. 초를 기준으로 시간을 계산한다 시/분/초 = 시간 * 60분 * 60초 + 분 * 60초 + 초 2. 시분초가 만나는 무조건 만나는 시간은 0시와 12시일 때이다. 3. while start < end 시작시간이 끝시간을 넘지 않을 때까지 .. 2023. 12. 8.
[프로그래머스 lv 1] PCCP 기출 1번 붕대감기 사용 언어 - Python3 문제 - PCCP 기출 1번 붕대 감기 https://school.programmers.co.kr/learn/courses/19344/lessons/242258 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 구현 각 단계별 체력을 status 리스트에 저장하기 0. 시간은 1초부터 attack[-1][0] 초까지 1. 초기 체력 = health, 시전시간 count 해줄 cnt = 0 2. 공격시간과 피해량을 attack_list에 저장해주기 3.1. 공격 받았다면, 이전상태에서 피해량 빼주기 status[i] = sta.. 2023. 12. 4.
[백준] 16472번 고냥이 (투포인터 문제) 사용 언어 - Python3 문제 - 16472번 고냥이 투포인터 : 가능성을 지워주는 방법 https://www.acmicpc.net/problem/16472 16472번: 고냥이 고양이는 너무 귀엽다. 사람들은 고양이를 너무 귀여워했고, 결국 고양이와 더욱 가까워지고 싶어 고양이와의 소통을 위한 고양이 말 번역기를 발명하기로 했다. 이 번역기는 사람의 언어를 고 www.acmicpc.net 정답 (투포인터) 양쪽 끝에서 비교하면서 만나면 종료 알파벳 종류가 n넘지 않는지 확인 + 최대 개수 확인 arr.rstrip() 불필요한 공백 제거 s = 시작포인터 = 0 e = 끝포인터 = 0 letters = [] 알파벳 종류 넣을 리스트 letters.append(arr[s]) 첫번째 값을 일단 넣고 시작.. 2023. 11. 3.
[백준] 22988번 재활용 캠페인 (투포인터 문제) 사용 언어 - Python3 문제 - 22988번 재활용 캠페인 투포인터 : 가능성을 지워주는 방법 https://www.acmicpc.net/problem/22988 22988번: 재활용 캠페인 첫 번째 용기와 두 번째 용기를 가져가서 용량이 $\left(0+1+\frac{13}{2}\right)$㎖ $=$ $7.5$㎖ 남은 용기를, 세 번째 용기와 네 번째 용기를 가져가서 용량이 $\left(2+3+\frac{13}{2}\right)$㎖ $=$ $11.5$㎖ 남은 용 www.acmicpc.net 정답 (투포인터) 양쪽 끝에서 비교하면서 만나면 종료 두 병의 용량 반납 -> (A+B+X/2) 용량이 담긴 새로운 용기 s = 시작포인터 = 0 e = 끝포인터 = n-1 cnt = 채워진 용기 개수 rem.. 2023. 11. 3.
[백준] 3273번 두 수의 합 (투포인터 문제) 사용 언어 - Python3 문제 - 3273번 두 수의 합 투포인터 : 가능성을 지워주는 방법 https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i 시간 복잡도 문제 ! 투포인터 알고리즘 활용 arr 정렬 후, s .. 2023. 11. 2.
[백준] 3020번 개똥벌레 사용 언어 - Python3 문제 - 3020번 개똥벌레 (골드 5) 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 정답 이모스법, prefix 누적합 문제 (정답 맞춘 여부 O) 1. 이모스법 https://imoz.jp/algorithms/imos_method.html 막대의 시작 = +1 막대의 끝 = -1 prefix 누적합 구하면 겹치는 수 구할 수 있다. 2. 석순과 종유석 range(0,n) for문을 반복하면서 짝수라면 = 석순 = 왼쪽에 붙어있음 = 시작은 항상 0 line[0] += 1 끝은 .. 2023. 10. 24.
[백준] 11600번 구간 합 구하기 5 사용 언어 - Python3 문제 - 구간 합 구하기 5 (실버 1) 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 정답 누적된 숫자들의 prefix 2차원 형태 (정답 맞춘 여부 X) 1. input graph[y][x] prefix도 [n+1][n+1] 배열로 만들기 2. 누적합 구할때 규칙 찾기 3. output 새로운 y1,x1,y2,x2 입력될 때마다 answer print 하기 import sys input = sys.stdin.readline n, m =.. 2023. 10. 24.