답:
def solution(n, arr1, arr2):
answer = 0
result = []
for i in range(0, len(arr1)): # n을 넣어도 될듯 +1해서?
result.append(bin(arr1[i] | arr2[i])[2:])
for i in range(len(result)):
if len(result[i]) < n:
result[i] = result[i].replace('1','#')
result[i] = result[i].replace('0',' ')
return answer
프로그래머스 1단계 비밀지도.
문제를 함께 리딩하고 필요한 정보를 정리한 후
요청에 따라 풀이과정 시연 and 시간제한을 두고 코드짜기 시간을 가져보았다.
문제 분석 및 풀이 과정 관전
이진법으로 비밀지도 만들기
1) n 길이의 숫자 배열이 주어짐.
2) list 의 숫자를 이진법으로 변환
3) 변환한 것을 1은 #, 0은 공백으로 변환하기
4) 순서대로 반환
- 시연한 풀이과정
def solution(n, arr1, arr2):
answer = 0
result = []
for i in range(0, len(arr1)):
result.append(bin(arr1[i]))
먼저 배열의 길이를 range함수로 for문에 넣어주고,
결과를 빈 리스트 result에 bin() 함수로 이진법으로 변환하여 넣어준다.

bin함수를 사용하면 앞에 0b가 붙게되므로, 연산자 [2:] 을 사용하여 제거.
result.append(bin(arr1[i] | arr2[i])[2:])
# print(result) 로 중간에 값 점검
replace 함수로 1, 0 을 각각 #과 공백으로 변환하고 값을 담아준다.
for i in range(len(result)):
if len(result[i]) < n:
result[i] = result[i].replace('1','#')
result[i] = result[i].replace('0',' ')
return answer
끝..@_@
문제 분석 및 풀이 과정 관전
- 경우의 수 구하기
1) seat_count 전체 좌석수 ex - 5 [1, 2, 3, 4, 5]
2) 고정 된 자리의 수가 주어진다.
3) 좌석은 고정된 자리 수가 없으면 양 옆의 사람과 바꿀 수 있다
4) result 반환해 경우의 수 구하기
문제를 함께 리딩하고 필요한 정보를 정리하였다.
피보나치 수열을 사용하지 않고 풀수 있는 방법은 없을까에 대한 고민을 함께 나누었다.
set()함수나 집합에 관련한 메서드를 불러와서 사용해보면 어떨까?
30분 제한을 두고 코딩에 들어갔다. 수준이 좀 많이 높아서 어떻게 풀어야될지 감도 안옴..ㅠㅠ
- 피보나치 수열 구현
def fibo(n):
if n==1
return 1
if n==2:
return 2
n = (n-1) + (n-2)
return n
그 외의 피보나치수열을 구하는 정보가 궁금하다면 : https://richwind.co.kr/3
네비게이터 팀원분의 풀이방식!
1) 코드에 주석으로 알고리즘 문제 정리
2) ~에서도 나올 수 있다. 와 같은 문장 = 예외처리문을 주의깊게 보아야함
3)입출력 값을 확인 - 주석의 문제이해정도와 입출력값이 맞는지 비교
4)코드 짜기 시작 - 적절한 자료형으로 입력값 세부 정리
(5) 복잡한 문제라면 풀이하면서도 중간중간 조건을 적어둠)
***이해가 안될때는.. 한글을 잘 읽었는지 다시 보고 생각을 다시해보기, 모르는 함수는 찾아보기
1단계를 처음 시작할때는 정답률 60%~70% 이상인 것을 보는 것이 좀 쉬운 문제를 찾을 수 있는 팁.
새롭게 알게된 것
- for 에도 else 사용이 가능하다!
- str.~~~ / dict. ~~~
이런 식으로 어떤 기능 적용이 가능한지 확인할 수 있다.
앞으로 추가 공부할 것 :
알고리즘 풀이에 많이 쓰이는 함수, 기능
: zip(), items, 리스트컨프리헨션, isdigit(), sum(), abs(), dict형, set(중복값 제거), join() 등
Python library 에서는,
- collections의 Counter를 자주 씀
- Itertools, combinations
- math
- numpy
에라토스테네스의 체 (?)
느낀점:
확실히 아예 손댈 엄두도 못냈던 문제들을 풀이하는 과정을 보니 개안하는 느낌이 들었다.
기본 문제 풀이도 좋지만 일주일에 한번쯤은 단계1을 도전해보는 것도 좋을 것 같다
'알고리즘 풀이' 카테고리의 다른 글
[algorithm] 프로그래머스:입문 로그인 성공? (0) | 2023.04.21 |
---|---|
[algorithm] 백준: 3003 킹, 퀸, 룩, 비숍, 나이트, 폰 (4) | 2023.04.20 |
[algorithm] 백준: 10172 강아지 (4) | 2023.04.18 |
[algorithm] 백준: 11382 꼬마 정민, 10171 고양이 (1) | 2023.04.17 |
[algorithm] 페어 - 프로그래머스:문자열 정렬하기 (팀원 풀이 해석) (0) | 2023.04.12 |