코딩테스트

    [python] 프로그래머스 - 로또의 최고 순위와 최저 순위

    [python] 프로그래머스 - 로또의 최고 순위와 최저 순위

    🤔문제 해결 맞은 개수와 0(조커)를 카운트한다. 최대 = 맞은 개수 + 조커 최소 = 맞은 개수 개수에 따라 등수를 부여한다. ( 0이 아니면 7 - (맞은개수) 해주면 등수 ) 💻소스 코드 def solution(lottos, win_nums): answer = [] right = 0 # 보이는것 중 맞은 것 zero_cnt = 0 # 0은 조커 for lotto in lottos: if lotto == 0: zero_cnt += 1 continue if lotto in win_nums: right += 1 min_rank = right max_rank = right + zero_cnt if max_rank > 0: answer.append(7-max_rank) else: answer.append(6..

    [python] 백준 - 10819. 차이를 최대로

    [python] 백준 - 10819. 차이를 최대로

    🤔문제 해결 S2 | 완전탐색, 백트래킹 백트래킹을 하려고 했으나, 순열로 푸는게 더 간단해보여서 조합을 이용했다. 숫자들을 배치할 수 있는 모든 경우의 수를 뽑아서 규칙에 맞게 계산을 해주고 최대값을 찾는다. 💻소스 코드 from itertools import permutations def my_sum(numbers_tuple): # 문제의 규칙에 맞게 더하기 total = 0 for i in range(N - 1): total += abs(numbers_tuple[i] - numbers_tuple[i + 1]) return total if __name__ == '__main__': N = int(input()) numbers = list(map(int, input().split())) answer =..

    [python] 백준 - 2493. 탑

    [python] 백준 - 2493. 탑

    🤔문제 해결 G4 | 자료구조, 스택 문제를 푼 뒤 문제 유형을 봤는데 스택이라고 되어있었다. 하지만 내 풀이는 스택을 사용하지 않았다. 그런데 다른 사람보다 효율이 좋게 나왔다. 메모리는 평균인듯. 풀이 방법 1번탑부터 마지막탑 순으로 탐색했다. 현재탑과 이전탑과 같을 때 현재탑의 레이저 신호를 수신하는 탑은 이전탑의 레이저 신호를 수신하는 탑과 같다. 현재탑이 이전탑보다 낮을 때 현재탑의 레이저 신호를 수신하는 탑은 이전탑이다. 현재탑이 이전탑보다 높을 때 🐱‍🐉 이전탑의 레이저 신호를 수신한 탑으로 건너 뛴다. 그 탑을 위의 3가지 방법으로 체크한다. 아직 현재탑이 높은 상태라면 또 그 탑의 레이저 신호를 수신한 탑으로 건너 뛴다. 이렇게 3가지로 분리했다. 💻소스 코드 if __name__ == ..

    [python] 백준 - 13458. 시험 감독 (삼성 SW 역량 테스트 기출 문제)

    [python] 백준 - 13458. 시험 감독 (삼성 SW 역량 테스트 기출 문제)

    🤔문제 해결 B2 | 수학 간단한 수학문제이다. ( 진짜 기출문제 맞나? ) 한 반에 감독관은 무조건 1명있어야한다. 한 반의 응시생이 감독관이 감시할 수 있는 응시생보다 많다면 부감독관을 투입한다. 감독관이 감시할 수 있는 응시생을 뺀 나머지 응시생을 부감독관들이 감시할 수 있게 한다. 💻소스 코드 import sys import math input = sys.stdin.readline if __name__ == '__main__': N = int(input()) # 시험장의 개수 A = list(map(int, input().split())) # 각 시험장의 응시자 수 B, C = map(int, input().split()) # B: 감독관이 감시할 수 있는 응시자 수, C: 부감독관이 감시할 수 ..

    [python] 백준 - 15685. 드래곤 커브 (삼성 SW 역량 테스트 기출 문제)

    [python] 백준 - 15685. 드래곤 커브 (삼성 SW 역량 테스트 기출 문제)

    🤔문제 해결 G4 | 구현, 시뮬레이션 좌표를 구해서 회전을 시켜가며 구하려고 했지만 도저히 아닌거 같았다. ( 방향이 주어졌는데 처음 1번만쓰고 버리나? 라고 생각했음 ) 방향으로 보니 규칙성이 있었다. 0세대: 0 1세대: 0 | 1 2세대: 0 1 | 2 1 3세대: 0 1 2 1 | 2 3 2 1 이제 구하는 순서는 드래곤 커브하나(한줄)의 방향들 구하기 드래곤 커브하나의 시작점을 기준으로 방향에 따라 쭉쭉 좌표써내려가기 모든 드래곤 커브를 맵에 표시했다면 네모 구하기 💻소스 코드 import sys input = sys.stdin.readline def make_curve(x, y, d, g): # 좌표로 푸는것이 아니라 규칙을 찾아 진행방향으로 푼다! # 진행방향은 지금까지 진행해온 것들을 역..

    [python] 백준 - 14500. 테트로미노 (삼성 SW 역량 테스트 기출 문제)

    [python] 백준 - 14500. 테트로미노 (삼성 SW 역량 테스트 기출 문제)

    🤔문제 해결 G5 | 완전탐색, 구현 5가지 도형을 회전시키거나 대칭시켜서 만들 수 있는 가지수는 19가지이다. 모든 도형의 좌표(0, 0을 기준으로)를 만든다. 주어진 2차원 리스트를 한칸씩 돌면서 그 지점에서 19가지 도형을 겹쳐서 숫자를 탐색한다. 💻소스 코드 import sys input = sys.stdin.readline def go_tetromino(x, y): for tetromino in tetrominos: sum_tet = 0 for _x, _y in tetromino: try: sum_tet += paper[x + _x][y + _y] except IndexError: break else: result.append(sum_tet) if __name__ == '__main__': N,..