파이썬 13

[삼성기출] 테트리스 블럭 안의 합 최대화 하기 - 파이썬

직관적으로 풀면, 나올 수 있는 모든 블럭의 종류의 좌표값을 저장해서 해결한다. n,m = map(int,input().split()) arr = [list(map(int,input().split())) for _ in range(n)] blocks = [[(0,1),(0,2),(0,3)],[(1,0),(2,0),(3,0)],#연속 일자 모형 [(0,1),(1,0),(1,1)],#정사각형 [(1,0),(1,1),(2,0)],[(1,0),(2,0),(1,-1)],[(0,1),(0,2),(-1,1)],[(0,1),(0,2),(1,1)],#가운데 툭튀 형 [(1,0),(1,1),(2,1)],[(1,0),(0,1),(-1,1)],[(0,1),(-1,1),(-1,2)],[(0,1),(1,1),(1,2)],#계단형..

Python/CoTe 2024.04.13

[삼성기출] 나무 박멸 - 파이썬 (테스트 케이스7 의미)

어려운건 아닌데,,,, 정말 신경 쓸 조건이 너무 많고 문제의 사소한 의미 파악하는데 오래걸림... ※ 주의할 조건 1. 나무가 번식할 때, 해당칸에 나무를 번식할 수 있는 모든 값을 더해야한다. 예를 들어, 아래 그림의 (4,2)칸의 경우, 18개 나무가 번식했을 때 값(9)+13개 나무가 번식했을 때의 값(6)을 모두 더해준 15가 된다. 2. 벽, 나무가 없는 땅, 제초제가 뿌려진 땅(이 땅도 나무가 없음) 곳 이상 제초제를 뿌려나갈 수 없다. → 벽이라면 제초제를 뿌리지 않는다. → 제초제가 뿌려진 땅이라면, 새롭게 제초제를 뿌린고 그 이상은 뿌리지 않는다. (테케7) → 나무가 없는 땅이라면, 새롭게 제초제를 뿌리고 그 이상은 뿌리지 않는다. → 나무가 있는 땅에는 제초제를 뿌리고, 제거된 나무..

Python/CoTe 2024.04.13

[CodingTest]나무 타이쿤 - 삼성기출문제 (파이썬)

정말 어려운 것은 아니지만 하나하나 체크하고 신경 쓸게 많은 구현 문제... 정답률 70% 이상인 것으로 보아 어렵진 않다. 문제 예시대로, 1.영양제 이동 2. 이동된 영양제 위치 나무 길이 +1씩 3. 영양제가 있는 나무 기준 대각선을 순회하면서 길이가 1 이상인 개수 곳의 개수만큼 지금 나무 길이 + 4. 길이가 2 이상인 나무 자르고, 자른 나무의 위치가 새롭게 영양제를 주는 곳으로 표시 이 것을 반복하면 된다. n,m = map(int, input().split()) trees = [list(map(int, input().split())) for _ in range(n)] moves = [list(map(int, input().split())) for _ in range(m)] move_dir ..

Python/CoTe 2024.04.13

PCCP 모의고사 1회 - 외톨이 알파벳 (파이썬 풀이)

프로그래머스 PCCP 모의고사 1회 - 외톨이 알파벳 파이썬 풀이 https://school.programmers.co.kr/learn/courses/15008/lessons/121683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명은 복잡하게 되어있지만 (처음 설명대로 접근하면 오히려 코드가 복잡해지고 접근법이 오히려 이상) 결국 2회 이상 나온 알파벳 중에 붙어 있지 않으면 모두 외톨이 알파벳이다. ※ 핵심 총 2회 이상 등장한 알파벳은 등장횟수만큼 모두 붙어있어야만 한다. 접근법 1. 지금까지 나온 모든 알파벳의 최대 등장 횟수만 알면된다. →..

Python/CoTe 2024.02.14

[프로그래머스] [3차] 방금그곡 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/17683# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각보다 쉬웠던 문제. 풀이 : 30분 ※ 접근법 1. 우선 C#, D#, F#, G#, A# 을 하나의 문자로 보기 위해 사용하지 않는 문자열로 치환해준다, 예시) dict_ = {"C#": "H", "D#": "I", "F#":"J", "G#":"K", "A#":"L"} 2. 제한 사항에 있는 조건들 확인. - 1) 재생된 시간 계산 - 2) 재생된 시간이 제일 긴 조건 확인 - 3) 음악 ..

Python/CoTe 2024.02.06

파이썬 리스트 slicing. for 문 없이 반복 접근 [::] (프로그래머스 5명씩)

Start Index: Not specified, defaults to the beginning of the list (0). Stop Index: Not specified, defaults to the end of the list. Step Size: Not specified, defaults to step size as 1. my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] result_default = my_list[::] # == my_list[::1] print(result_default) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 만약에 5의 배수대로 값들만 갖고 오고 싶을 때는 result_default = my_list[::5] 대표적으로, 프로그래머스..

[프로그래머스] level2 스킬트리 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제한 사항에서 1이상 26이하이며, 중복된 스킬은 없다고 한다. 접근법 정렬 전 후 비교로 접근 1. 모든 skill_tree에 대해 skill들을 돌면서 만약 해당 skill 이 존재한다면 skill 순서 정보와 함께 따로 list 배열에 저장. 2. 순서 정보가 포함된 리스트이기 때문에 정렬 했을 때 스킬을 순서대로 사용했다면 정렬하기 전과 후가 같은 값이어야 함. 예를 들어서, "CBD" 순..

Python/CoTe 2024.01.30

[프로그래머스] level2 할인 행상 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아... 왤케 문제 글이 길면 읽기 싫지...괜히 이해 더 안 가는 것 같은 착각. 이 문제가 그랬다.. 막상 생각보다 쉬운 문제라 10분 컷 했나.. 접근법 0. number의 합은 항상 10이고 항상 연속 10일이다. 1. want 속 물품들과 number 들 간의 pair를 dictionary 로 만들어 준다. 2. for 문으로 discount 중 처음부터 10일씩 잘라가며 1에서 만든 ..

Python/CoTe 2024.01.30

[programmers] 공원 산책 - 파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ※ 주의사항 1. 흔히 우리가 수학에서 쓰는 좌표계를 (x,y)로 표시한다. 그러나 프로그래밍에서는 배열을 좌표로 생각한 접근은 보통 이중 for문으로 하게 되는데, Width 는 x 좌표, Height 는 y 좌표계로 접근한다. 예를 들어, 아래와 같이 width 넓이가 4, height 높이가 3인 배열을 만들어서 이중 for 문으로 접근하면, coordinate = [[0 for _ in ..

Python/CoTe 2024.01.24

[프로그래머스] [1차] 프렌즈 4블록 python

https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ※ 접근법 시간 에러 날까봐 최대한 for문을 줄여보려고 했는데, 이 문제는 그냥 for 문이랑 while 문으로 푸는 문제였다.. while 문을 사용해서 1. 4개 블록이 같은 블록인지 확인하는 과정 2. 같은 블록이라면 해당 블록의 위치 정보 저장 3. 위치에 해당하는 블록 제거 + 위에 있던 블록 아래로 한 칸씩 밀어주기. 내가 풀면서 느꼈던 주의할 점 ▷ 2번에서 블록의 위치를 저장할 때..

Python/CoTe 2023.12.18
728x90