[Coding Test]/[백준]
[백준] 5052 파이썬(python) : 전화번호 목록 - (문자열숫자정렬, 리스트속문자열슬라이싱)
5052번 : 전화번호 목록 import syst = int(sys.stdin.readline())for _ in range(t): n = int(sys.stdin.readline()) number = [ sys.stdin.readline().rstrip() for _ in range(n) ] #1 number.sort() #2 flag = True for i in range(n-1): #3 if number[i] == number[i+1][:len(number[i])]: #4 print('NO') flag = False #5 break if flag == True: #6 print('Y..
[백준] 1120 파이썬(python) : 문자열 - 문자속비교(★)
https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 처음 문제를 접했을때 앞뒤에 넣어줄 소문자 알파벳을 모두 다 배열에다 넣은채로 만들어서 하나하나 길이차이 만큼 비교해줘야하나 생각했는데 아니었다. 문자열 b보다 짧은 문자열a를 비교할때 a의 앞뒤에는 어떤 알파벳이 들어가는지 신경쓰지 않아도 된다. 어차피 차이의 개수만 출력하면 되므로 앞뒤에 들어갈 문자는 알아서 가장 비슷한게 들어가겠구나 생각하면 된다. 즉..
[백준] 7567 파이썬(python) : 그릇
https://www.acmicpc.net/problem/7567 7567번: 그릇 그릇을 바닥에 놓았을 때 그 높이는 10cm 이다. 그런데 두 개의 그릇을 같은 방향으로 포개면 그 높이는 5cm만 증가된다. 만일 그릇이 서로 반대방향으로 쌓이면 높이는 그릇만큼, 즉 10cm 늘어난다. www.acmicpc.net import sys string = sys.stdin.readline().rstrip() height = 10 for i in range(1, len(string)): if string[i-1] == string[i]: height += 5 else: height += 10 print(height) 처음엔 스택 문제인 줄 알았는데 아니었다. 문자열 인덱스 풀 수 있는 문제였다.
[백준] 10820 파이썬(python) : 문자열 분석
10820번 : 문자열 분석 while True: try: string = input() ans = [0] * 4 #1 for char in string: if char.islower(): #2 ans[0] += 1 elif char.isupper(): #3 ans[1] += 1 elif char.isdigit(): #4 ans[2] += 1 else: #5 ans[3] += 1 print(*ans) #6 except EOFError: break #1 : 소문자, 대문자, 숫자, 공백이니까 4개의 리스트 생성 #2 : 소문자일때 리스트의 첫번째 요소에 +1 #3 : 대문자일때 리스트의 두번째 요소에 +1 #4 : 숫자일때 리스트의 세번째 요소에 +1 #5 : 공백일때 리스트의 네번쩨 요소에 +1 #6 :..
[백준] 1100 파이썬(python) : 하얀 칸 - 분류는 문자열
https://www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net import sys graph = [ list(sys.stdin.readline().rstrip()) for _ in range(8) ] cnt = 0 for i in range(8): for j in range(8): if graph[i][j] == 'F' and (i+j) % 2 == 0: cnt += 1 print(cnt) 문자열 문제 분류에서 찾았는데 왜 문자열 문제인지 모르겠다.
[백준] 11719 파이썬(python) : 그대로 출력하기 2
11719번 : 그대로 출력하기 2 while True: try: print(input()) except EOFError: break 11718 그대로 출력하기 문제와 같은 문제였다. 입력받는 방법인 input()과 sys.stdin.readline()의 차이를 알아야 풀 수 있다. 아직 try~ except 구문을 정확하게 모르는데 다음에 제대로 공부해봐야겠다. 11718번 : 그대로 출력하기