본문 바로가기

코딩테스트70

[Python] 백준 1138번 - 한 줄로 서기 https://www.acmicpc.net/problem/1138 n = int(input()) arr = list(map(int, input().split())) answer = [0]*n for i in range(n): cnt = 0 for j in range(n): if cnt == arr[i] and answer[j] == 0: answer[j] = i + 1 break elif answer[j] == 0: cnt += 1 print(' '.join(map(str, answer))) 봐도봐도 이해가 안 가서 글을 참고하였다... 참고 : https://gudwns1243.tistory.com/31 [백준][파이썬]1138번: 한 줄로 서기문제 출처 : www.acmicpc.net/problem/.. 2024. 6. 21.
[Python] 백준 19941번 - 햄버거 분배 https://www.acmicpc.net/problem/19941 N, K = list(map(int,input().split()))li = list(input())check = [0] * (len(li))# 햄버거를 먹었다면 1로 설정한다.for i, value in enumerate(li): if value == 'P': start = 0 if (i - K)= N else i + K for search in range (start,end+1): if check[search] == 0 and li[search] == 'H': check[search] = 1 breakprint(che.. 2024. 6. 20.
[Python] 백준 25757번 - 임스와 함께하는 미니게임 https://www.acmicpc.net/problem/25757  나의 답import sysdic = {'Y':2, 'F':3,'O':4}num, mode = input().split()mode = dic[mode]total = []for i in range (int(num)): total.append(sys.stdin.readline()) total = set(total)print(len(total)//(mode-1)) mode를 딕셔너리로 관리해서 한 게임당 플레이어 수를 설정했다. 반복되는 부분을 없앨려고 원래 리스트로 관리해서 있냐 없냐로 따졌었는데 그랬더니 계속 시간초과가 났다..그래서 입력받은 문자열 배열을 다 받아둔 다음에 set을 이용하여 반복된 문자열을 없애버렸다. .. 2024. 6. 20.
[Python] 백준 10431번 - 줄세우기 https://www.acmicpc.net/problem/10431  나의 답 - 틀린 버전import sysP = int(input())for _ in range (P): cnt = 0 li = sys.stdin.readline().split() print(li[0],end=" ") li = li[1:] for i,value in enumerate (li): for ci, compare in enumerate(li[:i]): if value  순서대로 검사를 한다.자기 자신보다 앞에 있는 큰 숫자중에 가장 앞에 있는 수 앞으로 가야하니,이 숫자를 발견하며 그 앞에 삽입을 한 후 삭제를 하는 방식으로 했다. 근데, 테스트 케.. 2024. 6. 13.
[Python] 백준 - 2563번 색종이 https://www.acmicpc.net/problem/2563 나의 답import sysN = int(sys.stdin.readline())max_karo = 0max_sero = 0result = []for i in range(N): N = list(map(int,sys.stdin.readline().split())) result.append(N) max_karo = max(max_karo,N[0]) max_sero = max(max_sero,N[1])arr = [[0 for j in range(max_karo+10)] for i in range(max_sero+10)]for re in result: for j in range (re[1],re[1]+10): .. 2024. 6. 12.
[Python] 백준 1158번 - 요세푸스 문제 https://www.acmicpc.net/problem/1158 나의 답N, K = list(map(int,input().split()))li = []index = -1print("",end="") 1번부터 N번까지 N명의 사람이 원을 이룰 수 있도록 배열을 만들었다. 수건돌리기 하는 느낌으로, 3칸씩 건너뛴 값을 출력하고, 그 값을 삭제했다.삭제할 때 index와 N(개수)를 삭제했다. index를 삭제해야 삭제한 지점으로 부터 3칸 떨어진 곳을 확인할 수 있다. 그리고 출력은 이런식으로 출력되어야 해서... 구리디 구린 방식으로 처음과 끝에   코드를 짜줬다..^^ 다른 사람 코드 - https://velog.io/@thguss/%EB%B0%B1%EC%A4%80-1158.-%EC%9A%94%EC%.. 2024. 6. 11.