분류 전체보기 390

● [파이썬] [구현] 백준 21610 마법사 상어와 비바라기

문제 https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 코드 import sys input=sys.stdin.readline dx=[0,-1,-1,-1,0,1,1,1] dy=[-1,-1,0,1,1,1,0,-1] n,m=map(int, input().split()) array=[list(map(int, input().split())) for _ in range(n)] cloud = [[False] * n for _ in range(n)] f..

문제풀이/구현 2023.03.22

@ [파이썬] [구현] 백준 21608 상어 초등학교

문제 https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 코드 import sys input=sys.stdin.readline dx=[-1,1,0,0] dy=[0,0,-1,1] n=int(input()) array=[[0]*n for _ in range(n)] sati=[[] for _ in range((n**2)+1)] for i in range(n**2): temp=list(map(int, input().split())) sati[t..

문제풀이/구현 2023.03.20

● [파이썬] [구현] 백준 14891 톱니바퀴

문제 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 코드 from collections import deque # appendleft 사용하기 위해 deque사용 array=[deque(map(int, list(input().strip()))) for _ in range(4)] def cal(): result=0 for i in range(4): if array[i][0]==1: # 2의 제곱 result+=(2**i) print(resu..

문제풀이/구현 2023.03.18

[파이썬] [구현] 백준 14889 스타트와 링크

문제 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 코드 import sys from itertools import combinations n=int(input()) array=[list(map(int, input().split())) for _ in range(n)] com=list(combinations(range(n),n//2)) result=sys.maxsize for start in com: # 조합으로 start팀을 구한후, 차집합을 통해 link팀 구..

문제풀이/구현 2023.03.17

[파이썬] [슬라이딩] 백준 1522 문자열 교환

문제 https://www.acmicpc.net/problem/1522 1522번: 문자열 교환 a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해 www.acmicpc.net 코드 import sys result=sys.maxsize s=input() if s=='b': print(0) exit(0) countB=s.count('b') tempB=s[:countB].count('b') result=min(result, countB-tempB) for i in range(1,len(s)): if s[i-1]=='b': tempB-=1 if s[(i+countB-1)%l..

문제풀이/기타 2023.03.16

[Sql] 문제 풀이

재구매가 일어난 상품과 회원 리스트 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID HAVING COUNT(*)>=2 ORDER BY USER_ID, PRODUCT_ID DESC 오프라인/온라인 판매 데이터 통합하기 https://school.programmers.co.kr/learn/courses/30/l..

TIL 2023.03.04

[파이썬] [구현] 백준 2531 회전 초밥

문제 https://www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ www.acmicpc.net 코드 import sys input=sys.stdin.readline n,d,k,c=map(int, input().split()) array=list(int(input()) for _ in range(n)) result=0 for i in range(n): count=0 # 배열의 크기를 넘어가지 않는 경우 if i+k

문제풀이/구현 2023.03.03

[파이썬] [그리디] 백준 17615 볼 모으기

문제 https://www.acmicpc.net/problem/17615 17615번: 볼 모으기 첫 번째 줄에는 볼의 총 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 다음 줄에는 볼의 색깔을 나타내는 문자 R(빨간색 볼) 또는 B(파란색 볼)가 공백 없이 주어진다. 문자열에는 R 또는 B 중 한 종류만 주 www.acmicpc.net 코드 n=int(input()) array=list(input()) result=500001 #case 1: 빨간색을 오른쪽으로 모으기 flag=False count=0 for i in range(len(array)-1,-1,-1): if array[i]=='B': flag=True if flag==True and array[i]=='R': count+=1 res..

[Sql] 문자 함수

문자 함수 1-1. INITCAP, LOWER, UPPER 함수 select ENAME, // 원본 데이터 그래도 출력 initcap(ENAME), // 첫 문자만 대문자 치환 lower(ENAME), // 전체 소문자 치환 upper(ENAME) // 전체 대문자 치환 from EMP; 1-2. SUBSTR 함수 substr 함수는 문자열의 일부 데이터만 필요한 경우 사용됩니다. 예를 들어보면 주민등록번호에서 성별 추출 등이 있습니다. student 테이블의 name 컬럼에서 성만 출력 //name 컬럼의 1 번째 위치에서 1 개의 문자를 추출하겠다는 의미 select name, substr(name, 1, 1) as 성 from student; 1-3. INSTR 함수 문자열 str 에서 substr..

TIL 2023.03.01