전체 글 72

프로그래머스 옹알이(1)

참고 링크:https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 유형: 구현 ✅ 오늘의 인증 (빠른 템플릿)1) 한줄 요약구현 문자열 replace, startswith2) 핵심 정리 / 풀이접근 방법저번에 푼 startswith로 풀 수 있을거 같아서 이 문제를 선택했는데, 막상 구현하려니 while True가 안 떠올라서 결국 지피티의 도움 (…)시간복잡도풀이 별 비교: 참고로 startswith() 풀이에서 word = word[len(speak):]처럼 슬라이싱으로 새로운 문자열을 계속 만드는 점..

1986. 지그재그 숫자 D2

한 줄 피드백: 효율성을 높이고 가능하다면 수학 패턴도 고려해서 사용하자!✔️ 실전용 베스트total = 0for i in range(1, N + 1):if i % 2 == 1:total += ielse:total -= iprint(f"#{tc} {total}") 👉 변수 하나 → 실수 확률 ↓👉 가독성 + 유지보수 ↑ 더 빠른 상위 풀이패턴 관찰:N=1 → 1N=2 → -1N=3 → 2N=4 → -2N=5 → 3N=6 → -3즉,홀수 N → (N + 1) // 2짝수 N → -(N // 2)T = int(input())for tc in range(1, T + 1): N = int(input()) if N % 2 == 0: result = -(N // 2) else: ..

SWEA 문제 풀이 2026.03.23

2050. 알파벳을 숫자로 변환 D1

내일부터는 2주 안에 D1 다 풀기 계획 짜고 실행한다 진짜로찐짜로!!!!!!!!!!!s = input()for ch in s: print(ord(ch) - ord('A') + 1, end=' ') 이 문제의 핵심은 사실 거창한 알고리즘보다는문자 → 아스키(유니코드) 코드값 변환이야.핵심 원리파이썬의 ord() 함수는 문자를 숫자로 바꿔 준다.알파벳을 숫자로 바꾸는 규칙 찾기파이썬에서는 문자도 숫자 코드값을 가지고 있어.ord('A') = 65ord('B') = 66...ord('Z') = 90그런데 우리가 원하는 건A = 1B = 2...Z = 26이니까ord(문자) - ord('A') + 1을 하면 된다.한 번에 정리# 1. 문자 → 숫자ord(ch) - ord('A') + 1# 2. 숫자 → ..

SWEA 문제 풀이 2026.03.18

1936. 1대1 가위바위보 D1

딕셔너리 방안도 적극 떠올려보자기 기본적인 정답 코드a, b = map(int, input().split())if (a == 1 and b == 3) or (a == 2 and b == 1) or (a == 3 and b == 2): print('A')else: print('B') 더 짧게 푸는 방법가위바위보 규칙을 아예 외워서 딕셔너리처럼 생각할 수도 있다.A가 이기는 경우를 집합으로 저장a, b = map(int, input().split())win = [(1, 3), (2, 1), (3, 2)]if (a, b) in win:print('A')else:print('B') 헌터X헌터에서 곤의 가위바위보 권법이 생각난다. . .

SWEA 문제 풀이 2026.03.17

1926. 간단한 369게임 D2

지인 덕분에 호다다닥 카페 나와서 미리 할 일 하게 되었다럭키~~~N = int(input())for i in range(1, N + 1): num = str(i) count = 0 for ch in num: if ch in '369': count += 1 if count > 0: print('-' * count, end=' ') else: print(i, end=' ') 핵심 알고리즘이 문제의 핵심은 문자열 순회 + 조건 검사야.핵심 원리숫자를 정수 그대로 다루면 각 자리를 나누는 과정이 번거롭다.하지만 문자열로 바꾸면 한 글자씩 쉽게 확인할 수 있다. 그래서 각 문자 ch가 '3', '6', '9' 중 하나인지 검사하..

SWEA 문제 풀이 2026.03.13

1210. [S/W 문제해결 기본] 2일차 - Ladder1 D4

아이스크림 정도는 가장 높은 직급 분께서 카드만 넘겨주세요 ㅠ~for _ in range(10): tc = int(input()) ladder = [list(map(int, input().split())) for _ in range(100)] # 1. 맨 아래에서 2의 위치 찾기 c = ladder[99].index(2) r = 99 # 2. 아래에서 위로 올라가기 while r > 0: # 왼쪽에 길이 있으면 왼쪽 끝까지 이동 if c > 0 and ladder[r][c - 1] == 1: while c > 0 and ladder[r][c - 1] == 1: c -= 1 # 오른쪽에..

SWEA 문제 풀이 2026.03.12

1979. 어디에 단어가 들어갈 수 있을까 D2

이제 그만 도파민 중독자 될게내가 제한 설정해둔 유튜브, 인스타 시간을 다 씀 ㅠ N시간씩인데 ... ;;이른 아침에 일어난다 진짜 복습한다 진짜 T = int(input())for tc in range(1, T + 1): N, K = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(N)] answer = 0 # 1) 가로 검사 for i in range(N): cnt = 0 for j in range(N): if board[i][j] == 1: cnt += 1 else: ..

SWEA 문제 풀이 2026.03.11

2001. 파리 퇴치 D2

좋아 마음을 다잡고 아자아자 파이팅!입사 해서도 폐 안 끼치려면 싸피 가서 실전 실력 쌓도록 공부하라는 아버지의 말씀. 만약 공채 바로 되면?했더니 구박 좀 받으면서 배우래 ㅋ ㅋ ㅋ ㅋ ㄴ> 근데 되겠냐고 ~ ㅠㅠ 내 블로그 글 AI 요약하면: 하기 싫어서 슬퍼하는 글이 대부분입니다. 이럴듯 T = int(input())for tc in range(1, T+1): N, M = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(N)] max_kill = 0 for i in range(N-M+1): for j in range(N-M+1): total = 0..

SWEA 문제 풀이 2026.03.10

5189. [파이썬 S/W 문제해결 구현] 2일차 - 전자카트 D3

철없는 생각이겠지만 나 아직 회사 다시 다닐 준비가 안 된 것 같아 .......근데 싸피 맨날천날 시험본대서 그럴 바엔 돈 제대로 받고 회사 다니고 싶어 ......근데 이런 실력으론 아무도 안 뽑아줘 ............ def dfs(now, cnt, total): global answer # 가지치기: 이미 최소값 이상이면 더 볼 필요 없음 if total >= answer: return # 모든 구역 방문 완료 if cnt == N: total += battery[now][0] # 회사로 복귀 answer = min(answer, total) return # 다음 방문 구역 선택 for next in ..

SWEA 문제 풀이 2026.03.09