BOJ [명제 증명]

jj·2022년 5월 13일
0

알고리즘-문제

목록 보기
22/35

문제

문제 보기





얻은 개념


ord() 를 사용하여 알파벳을 index로 매치하여 풀었다.

ord('Z')와 ord('a') 사이에 다른거 6개 있다.

주의하자 ㅜㅜㅜ




코드


n = int(input())

graph = [[1e9] * 52 for _ in range(52)]

for _ in range(n):
	l = input()
	l = l.split(" => ")
	
	if l[0].islower():
		l[0] = ord(l[0]) - ord('A') - 6
	else:
		l[0] = ord(l[0]) - ord('A')

	if l[1].islower():
		l[1] = ord(l[1]) - ord('A') - 6
	else:
		l[1] = ord(l[1]) - ord('A')
	
	graph[l[0]][l[1]] = 0



for k in range(52):
	for a in range(52):
		for b in range(52):
			if graph[a][k] == 0 and graph[k][b] == 0:
				graph[a][b] = 0

count = 0

for a in range(52):
	graph[a][a] = 1e9

for a in range(52):
	for b in range(52):
		if graph[a][b] == 0:
			count += 1

print(count)



for a in range(52):
	for b in range(52):
		if graph[a][b] == 0:
			if a>25:
				i = chr(a+ord('A')+6)
			else:
				i = chr(a+ord('A'))

			if b>25:
				j = chr(b+ord('A')+6)
			else:
				j = chr(b+ord('A'))
			print(i + " => " + j)
	
	
profile
끊임없이 공부하는 개발자

0개의 댓글