본문 바로가기
반응형

분류 전체보기204

[프로그래머스] 두 원 사이의 정수 쌍 Python 풀이 문제 구현 시간 효율은 나와있지 않아 모두 구해도 되겠지만 원의 특성상 1,2,3, 4분면의 형태가 같기에 1 사분면에서만 점의 개수를 구해주고 *4를 해주도록 한다. 겹치기 않게 x는 1부터 r2까지 확인하면서 구하고 y의 최대 최소 좌표를 계산한다. x**2+y**2=r**2 이므로 y**2 = r**2-x**2이다. 양 변에 루트를 씌워주면 y값을 구할 수 있다. y(r2)-y(r1) 사이의 모든 정수를 구하면 된다. 추가적으로 x가 r1보다 커지는 상황에서는 y(r1) 상관없이 최대 좌표까지의 모든 정수를 더해주면 된다. 코드 def solution(r1, r2): answer = 0 for x in range(0,r2): max_y = (r2**2-x**2)**0.5 min_y = 0 if x>.. 2023. 4. 17.
[Codility] Pi Code Challenge Python 오랜만에 Codility Challenge에 도전해 봤다. 다음 링크로 접속하면 코딜리티 챌린지에 도전할 수 있다. https://app.codility.com/programmers/challenges/ Pi Code Challenge challenge Show your skills! app.codility.com 120분이 주어지고 웬만한 언어는 모두 사용할 수 있다. 결과는 아쉽게 silver award를 받았다. 결국 golden award를 받아냈다 https://app.codility.com/cert/view/certGZCQDP-F9SNH7TKQMAH37EG/ 문제 설명 영어 울렁증이 있는 분들을 위해 문제 설명을 하면 알파벳으로 된 P, Q 두 문자열이 주어지고 결과 문자열 S를 만들어 S에서.. 2023. 4. 14.
[프로그래머스] 방의 개수 Python 풀이 프로그래머스 레벨 5 방의 개수를 풀어봤다. 레벨 5중에 정답률이 많이 높은 문제라 도전해 봤는데 실제 난이도는 3~4 정도인 느낌이다. 문제 문제는 위와 같다. 예시로 다음 그림이 주어진다. 이렇게 구역이 나눠지면 그 구역의 개수를 세면 된다. 구현 1차적으로 구역이 생기는 경우는 기존에 방문했던 점을 다시 방문했을 때이다. 이것만 생각했다면 실행할 때 테스트케이스는 맞지만 제출을 하면 다 틀리는 상황을 볼 수 있다. 추가로 확인해야 되는 점은 기존에 연결된 간선이 있는지다. 따라서 기존에 연결된 간선이 없고 방문했던 노드라면 그때 정답의 개수를 추가해 주면 된다. 여기서 대각선의 상황도 추가로 생각해야 한다. 하지만 이 상황은 포인트의 개수를 두배로 늘리며 접근하면 대각선 상황 자체가 사라진다. 아래.. 2023. 4. 13.
[프로그래머스] 달리기 경주 Python 풀이 문제 구현 이 문제는 효율성 테스트는 없지만 그냥 배열로 구현하면 시간 초과가 뜬다. 그래서 dict를 사용해서 구현해야 한다. dict에 이름이 키, index가 value 인 구조로 players 리스트를 가져온다. 그리고 callings 리스트를 돌면서 값을 swap 해주면 된다. dict로 바꿔줘야 된다는 것만 주의하면 레벨 1이라서 쉽게 구현할 수 있다. 코드 def solution(players, callings): pdic={} for i in range(len(players)): pdic[players[i]]=i for call in callings: idx = pdic[call] temp = players[idx-1] players[idx-1], players[idx] = players[.. 2023. 4. 7.
반응형