반응형

구현 42

백준 BAEKJOON 31859번 SMUPC NAME [PYTHON/파이썬]

백준 BAEKJOON 31859번 SMUPC NAME [PYTHON/파이썬] (BRONZE Ⅰ)https://www.acmicpc.net/problem/31859        # 1for 문과 if 문을 활용하여 출전자의 영어 이름에서 알파벳이 중복되지 않도록 추출했다.그 동시에 버려진 문자를 세어줬다. # 2, 3버려진 문자의 개수에 4를 더한 값을 문자열 맨 뒤에 붙였다.그리고 출전 번호에 1906을 더한 값을 맨 앞에 붙였다. # 4[::-1]를 사용하여 문자열을 뒤집은 뒤문자열 맨 앞에 "smupc_"를 붙여줬다.     N, Name = input().split()result = ""# 1abandonedText = 0 # 버려진 문자for i in Name: if i not in res..

백준 BAEKJOON 31844번 창고지기 [PYTHON/파이썬]

백준 BAEKJOON 31844번 창고지기 [PYTHON/파이썬] (BRONZE Ⅱ)https://www.acmicpc.net/problem/31844       박스를 원하는 칸으로 이동시키기 위해서는로봇의 위치 혹은 깃발의 위치 가 성립해야 한다.성립하지 않으면 박스를 원하는 칸으로 옮길 수 없기 때문에 -1을 출력한다. 로봇의 첫 번째 명령은 박스의 위치 한 칸 전까지 이동해야 하니박스의 위치에서 로봇의 위치를 뺀 뒤 또 1을 빼줘야 한다. 로봇의 두 번째 명령은 박스를 미는 행위이기 때문에깃발의 위치에서 박스의 위치를 빼주면 된다. 이 두 가지 명령의 횟수를 더해주면 결과를 출력할 수 있다.       storage = list(input())robot = storage.index("@") # ..

백준 BAEKJOON 31881번 K512에 바이러스 퍼뜨리기 [PYTHON/파이썬]

백준 BAEKJOON 31881번 K512에 바이러스 퍼뜨리기 [PYTHON/파이썬] (BRONZE Ⅱ)https://www.acmicpc.net/problem/31881       input 대신 sys.stdin.readline.rstrip()을 사용해야 시간 초과가 나지 않는다.바이러스 감염 여부를 체크하는 리스트를 만든 후결과값을 N과 같게 설정했다. query의 길이가 1보다 크면case와 x에 0번째 인덱스, 1번째 인덱스를 나눠 저장하였고그렇지 않다면 case 값만 저장했다. case가 1일 경우 승형이가 감염 시키는 행위이니바이러스 감염 여부를 체크한 뒤 결과값에 -1을 해주고 case가 2일 경우 근수가 치료하니바이러스 감염 여부를 체크한 뒤 결과값에 +1을 해주었다. case가 3일 경..

백준 BAEKJOON 31867번 홀짝홀짝 [PYTHON/파이썬]

백준 BAEKJOON 31867번 홀짝홀짝 [PYTHON/파이썬] (BRONZE Ⅳ)https://www.acmicpc.net/problem/31867        주어진 정수에 홀수와 짝수의 개수를 세어주면 된다.홀수가 짝수보다 많다면 1을 출력짝수가 홀수보다 많다면 0을 출력그렇지 않다면 -1을 출력하면 된다.      N = int(input())K = input()odd, even = 0, 0for i in K: if int(i) % 2 != 0: odd += 1 else: even += 1if odd > even: print(1)elif odd

백준 BAEKJOON 31832번 팀명 정하기 2 [PYTHON/파이썬]

백준 BAEKJOON 31832번 팀명 정하기 2 [PYTHON/파이썬] (BRONZE Ⅱ)https://www.acmicpc.net/problem/31832       처음엔 for 문 안에서 세 가지 조건을 다 대입하려다가조건이 꼬여서 히든 케이스를 잡지 못했다.결국에는 조건 하나하나마다 함수를 만들어서 풀게 되었다.함수를 통해 세 가지 조건 모두 참인 팀명이 정답이 되는 것이다. ※ 알파벳 대문자, 알파벳 소문자, 숫자, 하이픈의 아스키코드는 각각 65-90, 97-122, 48-57, 45이다.  첫 번째 조건, 대문자가 소문자보다 많으면 안 된다.결국 소문자는 대문자보다 크거나 같아야 한다.나는 for 문과 ord 함수를 사용하여 대문자와 소문자 개수를 파악하였다.  두 번째 조건, 팀명은 10..

백준 BAEKJOON 31831번 과민성 대장 증후군 [PYTHON/파이썬]

백준 BAEKJOON 31831번 과민성 대장 증후군 [PYTHON/파이썬] (BRONZE Ⅲ)https://www.acmicpc.net/problem/31831        스트레스 변화량에 맞춰서 for 문을 활용하면 쉽게 구현할 수 있다.스트레스 양이 0 아래로 내려가지 않으니0보다 낮게 되면 스트레스 양을 0으로 초기화시키고복통을 겪게 되는 스트레스 양 M 이상이면 복통을 겪게 되는 일 수에 더해주면 된다.       N, M = map(int, input().split())A = list(map(int, input().split()))level = 0result = 0for i in A: level += i if level = M: # M 이상이면 결괏값에 +1 resu..

백준 BAEKJOON 31823번 악질 검거 [PYTHON/파이썬]

백준 BAEKJOON 31823번 악질 검거 [PYTHON/파이썬] (BRONZE Ⅰ)https://www.acmicpc.net/problem/31823       먼저 최대 리버스-스트릭을 구하기 위한 set 집합을 선언하였다.동아리원 수에 맞춰서 for 문을 돌렸고이들의 활동 기록과 이름을 받은 뒤에최장 리버스-스트릭을 구하기 위해 다시 한 번 for 문을 돌렸다.       N, M = map(int, input().split())countStreak = set() # 최대 리버스-스트릭KPSC_List = [] # 최장 리버스-스트릭, 이름을 저장할 리스트for _ in range(N): record = input().split() streak, name = record[:M], re..

백준 BAEKJOON 31822번 재수강 [PYTHON/파이썬]

백준 BAEKJOON 31822번 재수강 [PYTHON/파이썬] (BRONZE Ⅳ)https://www.acmicpc.net/problem/31822       재수강할 과목 코드의 앞 5자리가 일치하는지 확인 후결괏값에 더해준 뒤 재수강으로 인정되는 과목의 개수를 출력하면 된다.       subjectCode = input()N = int(input())result = 0for _ in range(N): availableCode = input() if subjectCode[:5] == availableCode[:5]: result += 1print(result)

백준 BAEKJOON 31776번 예비 소집 결과 보고서 [PYTHON/파이썬]

백준 BAEKJOON 31776번 예비 소집 결과 보고서 [PYTHON/파이썬] (BRONZE Ⅲ)https://www.acmicpc.net/problem/31776      입력된 시간이 -1인 경우는 문제를 해결하지 않은 것으로 간주하고, 최대 시간인 121로 설정한다. (입력 조건 확인)그리고 문제를 풀 때 번호가 작은 순서대로 풀었는지 확인하여조건에 맞는 팀의 수를 결과로 출력하면 된다.       N = int(input())result = 0for _ in range(N): solve = list(map(int, input().split())) if sum(solve) == -3: # 만약 모든 문제를 해결하지 않은 팀이라면 다음 팀으로 넘어감 continue f..

백준 BAEKJOON 31821번 학식 사주기 [PYTHON/파이썬]

백준 BAEKJOON 31821번 학식 사주기 [PYTHON/파이썬] (BRONZE Ⅳ)https://www.acmicpc.net/problem/31821       입력 순서대로 학식 가격을 리스트에 저장한 뒤새내기들이 먹고 싶어 하는 메뉴의 번호의 가격을결괏값에 더해줬다.      N = int(input())menu = [int(input()) for _ in range(N)]result = 0M = int(input())for _ in range(M): eatMenu = int(input()) result += menu[eatMenu - 1]print(result)

반응형