Algorithm Problem/Python
![[python] SWEA - 6692. 다솔이의 월급 상자](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fdhjb3y%2FbtqPLPt9wqC%2FAAAAAAAAAAAAAAAAAAAAAKxQZfx6uui3YlvK0yOhmvLtTsITa6lGPkEwVO-NLEGK%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dml7wKvpt9aNglaT2LXz7DLzjGCo%253D)
[python] SWEA - 6692. 다솔이의 월급 상자
🤔문제 해결 D3 | ... 💨 왜 D3인지 모르겠지만, 아마 소수점 컨트롤 때문에 D3 인가 싶기도 하다. 💨 나의 경우 p 와 x 를 그냥 float 으로 바꿨는데 계속 오답이 났다. 💨 p 는 float, x 는 int 로 하니깐 바로 통과 💻소스 코드 for tc in range(int(input())): N = int(input()) avg = 0 for _ in range(N): tmp = input().split() p = float(tmp[0]) x = int(tmp[1]) avg += p * x # print(f'#{tc + 1} {total:6f}') print(f'#{tc + 1} {avg:.6f}') 📕문제 확인 출처: SW Expert Academy SW Expert Academy..
![[python] SWEA - 10570. 제곱 팰린드롬 수](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fllp1k%2FbtqPsEl897o%2FAAAAAAAAAAAAAAAAAAAAADB7jNlrOaS9yeUTZoQW1RLwBRD1lUiPNN44HCFFDOp_%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D3YiScbwEgECJT6IyQL2N3EWNOsU%253D)
[python] SWEA - 10570. 제곱 팰린드롬 수
🤔문제 해결 lv3 | 문자열 💨 제곱수이므로 제곱근이 정수일 때만 계산한다. 💨 정수와 그 제곱근을 문자로 만들어 뒤집고, 뒤집기전과 같은지 확인한다. 💻소스 코드 for tc in range(int(input())): A, B = map(int, input().split()) cnt = 0 for i in range(A, B + 1): C = i ** (1 / 2) if C == int(C): # 제곱근이 정수일 때 i = str(i) C = str(int(C)) if i == i[::-1] and C == C[::-1]: cnt += 1 print(f'#{tc + 1} {cnt}') 📕문제 확인 출처: SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움..
![[python] 백준 - 15685. 드래곤 커브 (삼성 SW 역량 테스트 기출 문제)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbhRZUD%2FbtqNF9OZSNx%2FAAAAAAAAAAAAAAAAAAAAAFAQSUZU00luX9Eoz7MoVUEyDPkR-XbpvXyKFha05Xcp%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DWBf%252BSNz5bdxKF59JNrR2AiyQTUg%253D)
[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 역량 테스트 기출 문제)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fcwrf8W%2FbtqNCdDSaH6%2FAAAAAAAAAAAAAAAAAAAAAKw8MEvNRASaKohXy_q6y-oYZTDtwN0eHt_rlu47YI-i%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D5%252FL7b90XF7dkLubki1jYTdK68O0%253D)
[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,..
![[python] 백준 - 1261. 알고스팟](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbJGbWs%2FbtqNqeKnKwk%2FAAAAAAAAAAAAAAAAAAAAAM1UZj3nIqu-AVA8VhWu1k7J_Hv_hkuUhceej7OPpQsO%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DJYnb%252F0t%252FG9ZZTIbCmpl2u2f1%252B3M%253D)
[python] 백준 - 1261. 알고스팟
🤔문제 해결 G4 | 다익스트라(BFS도 가능) 다익스트라 유형으로 되어있지만 BFS도 가능한거 같다. BFS로 풀 면 길을 찾아 갈 때 0이면 그냥 가고 1이면 +1해서 가면 된다. 이 문제는 다익스트라로 풀어봤다. ( 다익스트라와 우선순위큐(힙큐)는 짝꿍 ) 주어진 미로와 같은 크기의 2차원 배열을 만든다. ( 가중치를 업데이트 해줄 배열 ) 0,0 부터 주변을 탐색하며 방(0)이면 비용을 현재비용으로 넣고, 벽(1)이면 비용을 현재비용 +1해서 업데이트 해준다. 업데이트가 된 지점을들 힙큐에 넣고 목적지가 나올 때 까지 위의 과정을 반복한다. 💻소스 코드 import heapq if __name__ == '__main__': N, M = map(int, input().split()) # 문제는 1부..
![[python] 백준 - 14889. 스타트와 링크](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FchaDdr%2FbtqNq0Y4LcF%2FAAAAAAAAAAAAAAAAAAAAAJueyjA8vRV66YThwjwD-LvCZ47r3n54pIYjz99sPndg%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DqxebQTFgEpSo2OZGgURfdhh5HYY%253D)
[python] 백준 - 14889. 스타트와 링크
🤔문제 해결 S3 | 브루트포스, 백트래킹 재귀 함수를 이용하여 A팀을 구한다. 전체 멤버의 절반이 될 때까지 팀을 구성 set으로 구한다. ( 교집합을 사용해서 B팀을 구하기 위해 ) 두 팀을 구했으면 각 팀의 모든 조합을 테이블에서 값을 계산해서 구해준다 이번에는 콤비네이션 모듈을 사용했다. 테이블의 값을 모두 더해주고 두 팀의 총합을 빼준뒤 절대값을 씌워서 차이를 구한다. 최소값으로 답을 갱신해준다. 💨 팀을 구할 때 콤비네이션을 쓰지 않은 이유는 콤비네이션은 모든 경우의 수를 구하기 때문 전체 회원 [0, 1, 2, 3] 일 때 A 팀이 0,1 B팀이 1,2 인 경우와 A 팀이 2,3 B팀이 0,1 인 경우의 답은 같지만 콤비네이션은 이 두가지 경우를 구하므로 비효율적 💻소스 코드 from ite..