SW Expert Academy의 문제를 풉니다.
SWEA의 정책 상 문제를 가져오는 것은 안되고, 문제 링크를 공유합니다.
- 2072.홀수만 더하기
- 2071.평균값 구하기
- 2070. 큰 놈, 작은 놈, 같은 놈
- 2068. 최대수 구하기
- 2063. 중간값 찾기
- 2058. 자릿수 더하기
- 2056.연월일 달력
- 2050.알파벳을 숫자로 변환
- ord()
- 2047. 신문 헤드라인
- ord()
- 2046. 스탬프 찍기
- 2043.서랍의 비밀번호
- whlie로 풂. for로도 가능한가? 가능하기는 하겠다.
- 2029. 몫과 나머지 출력하기
- %, //
- 2027.대각선 출력하기
- for 안에 for를 두개 써서 풀었다.
- 2025.N줄덧셈
- 1938. 아주 간단한 계산기
- 1933. 간단한 N의 약수
- 1936.1대1 가위바위보
- 2019.더블더블
- **
- 1545. 거꾸로 출력해 보아요
-
- str(), count()
-
- 문자열 슬라이싱
-
- 슬라이싱. n[시작 인덱스 : 끝 인덱스 : 간격]
-
- 리스트명.sort(), del 리스트명[삭제할 인덱스], round(값, 몇째자리에서 반올림할건지)
- round(값)만 하면 소수점 첫째자리에서 반올림함. 2라고 하면 소수점 3째자리에서 반올림해서 2째자리까지 보여줌. -1이라고 하면 1의 자리에서 반올림.
-
- 리스트, 딕셔너리를 잘 이해해야 할 듯..!
- 변수명 정하기 어려웠음... k가 겹쳐서 문제 생기기도 했음.
- 딕셔너리에서 value값을 가지고 정렬하기.
new_students=sorted(students.items(),key=lambda x:x[1], reverse=True)
-
- 사방으로 이동할 때 인덱스를 어떻게 바꿔야 하는지 알면 될 듯!
- 만약 범위를 벗어나거나, 이미 다른 숫자로 채워져 있으면 (처음에는 0으로 초기화) 방향 바꾸는 식으로.
-
- for문 4개로 풀었다.
- 1206.
- 1209. Sum
- 1221.GNS
- 다 나열해서 풀었다.. 하나 하나 경우를 뽑아서.. (예. 1 <-> 'ONE')
- 11315.오목 판정
- 1240. 단순 2진 암호 코드
- 1244. 최대 상금
- 메모이제이션을 활용함
- 5201 컨테이너 운반
- 5202 화물 도크
- 그리디! 회의실 배정 문제와 같다.
- 5203 베이비진 게임
- 5208. 전기버스2
- dfs + 가지치기
- 5205. 퀵 정렬
- 말 그대로 퀵 정렬을 구현하는 문제
- 5207. 이진 탐색
- 일반 이진 탐색에 조금 더 고려해야 함(flag 'R'인지, 'L'인지 두어서, 그걸 또 만나지 않게 ! )
- 2814. 최장 경로
- 최단 경로가 아니라 최장 경로를 구하다니 특이한 듯..ㅋㅋ
- 모든 정점에서 dfs를 시작해 봤다.
- [5248. 그룹 나누기]
- 서로소 집합
- 1210. Ladder1
- 2819. 격자판의 숫자 이어 붙이기
- 모든 경우를 고려해서 dfs로 풀었다! 즉 4X4 격자판의 모든 위치에서 출발해봤고, 각각의 경우에 6번 동서남북으로 가봤다. (격자판 벗어나지 않게 범위 체크는 필수 !)
- 대충 4X4X(4^6) 이니까 65536번 계산을 하는 것 같다..! 횟수가 작아서 시간 안에 통과하는 것 같다 ~
- 5209. 최소 생산 비용
- 백 트래킹 ! 순열 !
- 1865. 동철이의 일 분배
- 5209 문제와 비슷하다. 0과 1 사이를 곱한다. -> 계속 작아진다는 것을 생각하기.
- 소수점 출력 헷갈리지 말기.
- 4366. 정식이의 은행 업무
- n진수를 10진수로 바꾸는 것
- 브루트포스로 풀었다
- 1486. 장훈이의 높은 선반
- 부분 집합..! 백트래킹!
- 1861. 정사각형 방
- 다음 방으로 갈 수 있는지 체크 -> 연속 체크된 것 개수를 세는 아이디어.. (나는 못 떠올렸고 설명 듣고서야 풀었다.)
- [5247.연산]
- BFS 로 풀었다. 범위 체크, 방문 체크
- [5249. 최소 신장 트리]
- 크루스칼로 풀었다.
- [5250. 최소 비용]
- 다익스트라를 조금 응용했다
- [5251. 최소 이동 거리]
- 다익스트라~
- 1249. 보급로
- 다익스트라 ! 최소 비용 문제랑 비슷한 느낌
- 1251. 하나로
- 최소 비용 신장 트리..! 프림 알고리즘으로 풀었다.
- 7465. 창용 마을 무리의 개수
- 1242. 암호코드 스캔
- 런타임 에러와 함께 힘든 시간을 보냈다. (
input().strip()
/ 메모리도 고려하기 - 리스트로 입력받을 필요 없는 것을 문자열로 받음) - 포스팅
- 런타임 에러와 함께 힘든 시간을 보냈다. (
- 1247. 최적 경로
- 백준에서 외판원 순회2 풀었던 것을 활용함.
- 입력을 잘 받아서, 순회 비용 행렬은 따로 만들어야 함.
- 출발점 != 도착점이라는 점도 다름.
- 1795.인수의 생일파티
- 다익스트라 두 번으로 해결되는 문제..!! 간선 반대로 받는 아이디어 생각하기 어려웠다.
-
- 조합 구하기
-
- 중복 순열 구하기, dfs, copy.deepcopy()...
- 시뮬레이션 문제..! 벽돌 깨뜨린 후, 빈 공간 있으면 아래로 내려주기
-
- 대각선 방향 ! DFS ! -직진할지, 꺾을지
-
- 구현 문제
- 중복 제거를 위해서 set 사용함.
- 회전 구현을 위해서 pop, insert(0)를 사용함.
-
-
시뮬레이션, 구현
-
여러 조건들을 꼼꼼히 고려해야 함
-
약품 부분으로 가면 방향 반대로, 수는 절반으로
- 수가 0이 되면 군집 없애기
-
여러 군집이 만나면 수는 다 더하고, 방향은 제일 큰 군집 쪽으로
- 이 부분을 while 두 개로 함.
- 마지막 부분을 반영하는 로직을 열심히 생각함.
-
-