전체 글

전체 글

    [python] SWEA - 1209. [S/W 문제해결 기본] 2일차 - Sum

    [python] SWEA - 1209. [S/W 문제해결 기본] 2일차 - Sum

    🤔문제 해결 가로, 세로, 대각선으로 나눠서 해결 가로: 한 행씩 sum 해줌 세로: 90도 돌린다음 할까 하다가 굳이라는 생각에... 리스트를 만들어 한 열끼리 수를 더해줌 대각선: 정사각형이므로 n행n열, n행(N-1-n)열 로 하나씩 더해줌 가장 큰 값 💨 오랜만에 다시 시작해서 가벼운 문제로 시작(❁´◡`❁) 💻소스 코드 T = 10 # 테케는 10개 for test_case in range(1, T + 1): input() # 테케 번호 받기 N = 100 answer = 0 arr = [list(map(int, input()[:-1].split(' '))) for _ in range(N)] # 2 차원 행렬화 # [:-1]을 한 이유는 맨 마지막에 띄어쓰기가 들어간다. 오랜만에 해서 왜 그런지..

    Vanilla SPA 구현

    Vanilla SPA 구현

    바닐라 자바스크립트로 SPA 만들기 기본 세팅 폴더 구조 프로젝트 폴더에 frontend/index.html 생성. 화면에 보여줄 초기 화면 Dashboard Posts Settings express 서버 구축 간단한 서버를 구축하기 위해 express 를 설치해준다. npm i express 설치 후 프로젝트 폴더에 server.js 생성 // servser.js // express 서버 만들기 const express = require("express"); const path = require("path"); const app = express(); // 정적 (static) 구조 세팅 frontend 의 static 폴더 app.use( "/static", express.static(path.res..

    [python] SWEA - 13547. 팔씨름

    [python] SWEA - 13547. 팔씨름

    🤔문제 해결 내가 이긴 횟수와 남은 게임의 횟수를 구한다. 그 둘의 합이 8보다 크면 내가 이길 가능성이 있으므로 답은 YES 💻소스 코드 T = int(input()) # 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다. for test_case in range(1, T + 1): print(f'#{test_case}', end=' ') game_result = input() win_cnt = 0 for result in game_result: if result == 'o': win_cnt += 1 rest_game = 15 - len(game_result) if win_cnt + rest_game >= 8: print('YES') else: print('NO') 📕문제 확인 출처: SW Exp..

    [python] 프로그래머스 - 공 이동 시뮬레이션(월간 코드 챌린지 시즌3)

    [python] 프로그래머스 - 공 이동 시뮬레이션(월간 코드 챌린지 시즌3)

    🤔문제 해결 쿼리는 거꾸로 시작 끝이면 늘리고 끝이 아니면 이동 명령: 위로 한칸 (아래에 있어야 위로 왔을 때 별에 도착할 수 있다 or 제자리여도 위로 한칸이면 어짜피 끝이기 때문에 별에 도착할 수 있다) 명령: 왼쪽으로 한칸 (오른쪽에 있어야 왼쪽으로 왔을 때 별에 도착할 수 있다.) 명령: 위로 세칸 (아래쪽에 있어야 위로... 그러나 끝이기 때문에 늘릴 수 없다.) 명령: 오른쪽으로 한칸(왼쪽에 있어야 오른쪽으로 왔을 때 별에 도착가능 명령: 위로 두칸 ( 아까 위로세칸인 경우랑 같음 ) 명령: 아래로 한칸 answer = (x_max - x_min + 1) * (y_max - y_min + 1) 💨 중간에 범위를 아예 벗어나서 결과가 0인 경우가 발생한다. 💻소스 코드 def solution(..

    [python] 프로그래머스 - 아이템 줍기(위클리 챌린지)

    [python] 프로그래머스 - 아이템 줍기(위클리 챌린지)

    🤔문제 해결 테두리 그리기 2차원 배열 만들어 두고 테두리는 1, 내부는 0으로 표시 테두리와 내부가 겹칠경우 0으로 표시 위 그림이 예시의 방향과 다른 이유는 좌표계가 다르기 때문 그리고 2배를 주고 테두리를 잡았다 그 이유는 2배를 안주면 길이 아니여도 1칸 차이가 날 수 있기 때문에 경로가 되어 버린다. 길 찾기는 BFS 로 최단거리 찾아주면 끝 💻소스 코드 from collections import deque def solution(rectangle, characterX, characterY, itemX, itemY): answer = 0 MAX = 102 # 두배로 늘리기 때문에 최대 102 # 테투리 그리기 field = [[5] * MAX for _ in range(MAX)] # 5는 맨처음..

    [python] 프로그래머스 - 110 옮기기(월간 코드 챌린지 시즌2)

    [python] 프로그래머스 - 110 옮기기(월간 코드 챌린지 시즌2)

    🤔문제 해결 1. 모든 110 찾기 2. 나머지에 0이 있으면 그 0뒤에 110 다 붙이고 3. 0이 없으면 앞에 110을 다 붙인다 월코챌 해설지 보고 풀었는데 답 구하는게 헷갈려서 많이 고민한 문제 💻소스 코드 def solution(s): answer = [] for x in s: # 모든 110 찾기 # 110 찾으면 변형된 x에서 또 찾기 one_one_zero_cnt = 0 stack = [] for x_one in x: if x_one == '1': stack.append(x_one) else: if len(stack) >= 2 and stack[-1] == '1' and stack[-2] == '1': stack.pop() stack.pop() one_one_zero_cnt += 1 els..