알고리즘 문제 풀이/이코테 60

[이코테] CH04 구현 실전문제 7번 럭키 스트레이트

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 def LUCKY(array): leftsum = 0 rightsum = 0 N = len(array) // 2 for i in range(N): leftsum += array[i] for j in range(N+1, len(array)): rightsum +=array[i] if rightsum == leftsum: print("LUCKY") else: print("READY") array = list(map(int,sys.stdin.readline().rstrip())) LUCKY(arra..

[이코테] CH04 구현 실전문제 3번 게임 개발

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 def findpath(x,y,way): count = 1 graph[x][y] = -1 flag = 0 way +=200 while True: visitcount = 0 for _ in range(4): nx = x + dx[(way-1)%4] ny = y + dy[(way-1)%4] if graph[nx][ny] == 0: graph[nx][ny] = -1 # 방문 처리 count +=1 flag = 1 visitcount +=1 x,y = nx,ny way -=1 if flag == 0:..

[이코테] CH04 구현 실전문제 2번 왕실의 나이트

꽤 쉬운 문제였다 이제 할 줄 알아야 하는건 파이썬에서 a를 0부터 시작 , b가 1 문자 -> 숫자 아스키코드 변환은 ord('a') 하면 97이 나온다 그래서 ord(elem[0]) - 97 해주면 a가 0 , b가 1 이렇게 추출할 수 있었다. import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 def findroad(): row = ord(elem[0]) row -= 97 col = int(elem[1]) - 1 count = 0 for i in range(8): nx = row + dx[i] ny = col + dy[i] if nx >..

[이코테] CH03 그리디 실전문제 5번 볼링공 고르기

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 N,M = map(int,sys.stdin.readline().split()) x = list(map(int,sys.stdin.readline().split())) x.sort() count = 0 for i in range(len(x)): for j in range(i,len(x)): if x[i]!=x[j]: count +=1 print(count) 처음에 보고 이렇게 쉽다고? 하면서 풀었는데 이러면 반복문이 총 len(x) * ( 1 + 2 + ... (len(x)-1)만큼 돌아가므로 메..

[이코테] CH03 그리디 실전문제 4번 만들수 없는 금액

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 N = int(input()) x = list(map(int,sys.stdin.readline().split())) x.sort() target = 1 for elem in x: if target < elem: break # 만들 수 없는 금액 target += elem print(target) 30분 고민하다가 그냥 답지 봤다 코드가 참 짧네..^^ 열심히 해야겠다. 로직은 이해했는데 이걸 다시 복습해야할 필요가 있을 듯 하다

[이코테] CH03 그리디 실전문제 3번 문자열 뒤집기

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 x = list(sys.stdin.readline().rstrip()) countzero = 0 countone = 0 count = 0 if x[0] == '1': countzero = 1 else: countone = 1 for i in range(len(x)-1): if x[i]!=x[i+1]: if x[i+1] == '0': countone +=1 # 0-> 1 else: countzero +=1 # 1-> 0 value = min(countone,countzero) print(valu..

[이코테] CH03 그리디 실전문제 1번 모험가 길드

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 N = int(input()) x = list(map(int,sys.stdin.readline().split())) x.sort() count = 0 temp = x[0] number = 0 for i in range(len(x)): temp = max(temp,x[i]) if x[i] temp: # 만약 기준인 temp값을 넘어간다면 ? (해당 원소가 더 큰 인원수를 필요로 하는 경우) number = 0 # 그룹 멤버로 세던 넘어를 초기화해준다. temp = x[i] # temp값을 다시 ..