♟️ 알고리즘 146

[Python][백준] 1157. 단어 공부

링크🔗https://www.acmicpc.net/problem/1157🗒️파이썬  풀이str = input().upper()lst_str = list(set(str))lst = []for word in lst_str: lst.append(str.count(word))if lst.count(max(lst)) > 1 : print("?")else : print(lst_str[lst.index(max(lst))]) 1. 대소문자 구분을 안하고, 대문자로 출력하기 떄문에 upper 함수 사용 2. 각 문자의 개수를 파악하기 위해 집합으로 만든 후 리스트 생성 3. 집합으로 만들어진 리스트의 단어들을 통해 str 단어 개수 파악 후 리스트 append 4. 각 단어의 개수가 들어가있는 ls..

[Python][백준] 2292. 벌집

링크🔗https://www.acmicpc.net/problem/2292🗒️파이썬 내 코드 풀이N = int(input())lst = [1]K = n = 1while True : K = K + (6*n) lst.append(K) n += 1 if K > int(1e10): breakif N != 1 : for i in range(len(lst)-1): if lst[i] 1. 벌집을 하나 하나 보면 규칙성을 찾을 수 있다.첫번째 레이어 : 0~1 두번째 레이어 : 2~7세번째 레이어 : 8~19네번째 레이어 : 20~38. . .  2. 규칙성을 찾아서 식을 작성 해주었고, 각 레이어별 범위를 리스트로 만들어 준다. 3. 범위 리..

[Python][백준] 23971. ZOAC 4

링크🔗https://www.acmicpc.net/problem/23971 🗒️파이썬 코드 풀이H,W,N,M = map(int,input().split())cnt_M = cnt_N = 0n_M = n_N = 1 while True: cnt_M += 1 n_M += (M+1) if W  1.cnt_M, cnt_N 은 배치 가능한 수를 카운트 한 값이다. 2. n_M, n_N은  M과 N 씩 누적해서 띄워진 값이다. 3. while문에서 if문의 조건이 만족 할 때 까지 돌린 후 cnt_N,과 cnt_M을 추출해서 곱한다.  📌  문제 코멘트처음에 이 문제를 보고 ni,nj 방식을 쓸까도 고민을 했지만, 그다지 어려운 문제는 아니였다.(사실 변수에 대해 크게 고민하지는 않았다...) 참..

[Python][백준] 1002. 터렛

링크🔗https://www.acmicpc.net/problem/1002 🗒️파이썬 코드 풀이import mathN = int(input())for _ in range(N) : x1, y1, r1, x2, y2, r2 = list(map(int, input().split())) d = math.sqrt((x1-x2)**2 + (y1-y2)**2) # 두 원의 거리 if d==0 and r1==r2: print(-1) elif abs(r1-r2)==d or r1+r2==d: print(1) # 내접 또는 외접 elif abs(r1-r2) 1.  d = 0, r1=r2 인 경우에 겹치는 점(마린)이 있을 수 있는 경우의 수는 무한 2. 내접 또는 외접인 경우  3. 두 원에..

[Python][SWEA] 5215. 햄버거 다이어트 D3

SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 🗒️파이썬 코드 풀이def dfs(n,T_score,kcal): global ans if kcal > L : return if n == N : ans = max(ans,T_score) return dfs(n + 1, T_score + lst[n][0], kcal + lst[n][1] ) dfs(n + 1, T_score, kcal)T = int(input())for tc in range(1,T+1): N,L = list(map(int,input().split())) # N 재료수, L 제한 칼로..

[Python][SWEA] 1979. 어디에 단어가 들어갈 수 있을까 D2

SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com🗒️파이썬 코드 풀이T = int(input())for tc in range(1,T+1): N,K = map(int,input().split()) lst = [list(map(int,input().split())) + [0] for _ in range(N)] lst.append([0]*(N+1)) ans = 0 v = [] for i in range(N+1): sum = 0 for j in range(N+1): if lst[i][j] == 1 : sum += 1 ..

[Python][SWEA] 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기

🗒️ 파이썬 코드 풀이T = int(input())for tc in range(1,T+1): N = int(input()) lst = list(map(int,input().split())) score = [0] * 101 for ls in lst: score[ls] += 1 mx = max(score) mx_idx = 0 for i in range(len(score)): if mx == score[i]: mx_idx = max(mx_idx,i) print(f"#{tc} {mx_idx}") 1. 0~100까지 길이의 리스트를 만들어준다.  각각의 인덱스 번호가 점수가 되는 것이다.ex) 0 인덱스 = 0 점 2. 입력..

[Python][SWEA] 1954. 달팽이 숫자 D2

🗒️ 파이썬 코드 풀이T = int(input())for tc in range(1,T+1): N = int(input()) lst = [[0]*N for _ in range(N)] di,dj = [0,1,0,-1],[1,0,-1,0] i = j = k = 0 lst[i][j] = 1 cnt = 2 while cnt  1. di,dj 방향으로 문제를 푸는 방식이다. 2. 반복횟수는 cnt의 값이 N*N까지로 설정한다. 3. ni,nj의 값을  동-남-서-북 방향으로 진행 시킨다.  (처음 시작은 동쪽부터) 4. 범위는 0~N 까지이고 lst[ni][nj] = 0 인 지역만 가능하다. i,j 값은 조건에 통과된 ni,nj로 바꿔주고 새로운 lst[i][j]의 값에 cn..