algorithm/problem solving

acmicpc.net 1297번 TV크기, 1251번 단어 나누기, 1252번(실패....)

qkqhxla1 2016. 7. 12. 14:23

https://www.acmicpc.net/problem/1297


1297번 TV크기.

import math
t = map(int,raw_input().split())
for i in range(2):
    print int(math.sqrt(t[0]**2 / float(t[1]**2 + t[2]**2)) * t[i+1]),

https://www.acmicpc.net/problem/1251


1251번 단어 나누기. 

word = raw_input()
new_word = []
for i in range(1,len(word)):
    for j in range(i,len(word)):
        for k in range(j+1,len(word)):
            #new_word = word[0:i] +' '+ word[j:k] +' '+ word[k:len(word)]
            new_word.append(word[0:i][::-1] + word[j:k][::-1] + word[k:len(word)][::-1])
        break
print sorted(new_word)[0]


1262번 알파벳 다이아몬드 하다 만 소스코드. 


시간 초과 떴는데 이이상 진도를 못나가겠다. 버리기도 아까워서 올려놓음.

N,R1,C1,R2,C2 = map(int,raw_input().split())
tile = ['' for i in range(2*N-1)]
w_tile = ['' for i in range(R2+1)]
c = 1
for i in range(len(tile)):
    if i < N:
        for j in range(N-i,1,-1):
            tile[i] += '.'
        for j in range(2*i+1):
            if j < (2*i+2)/2:
                if (96+N) > 122:
                    if (N-123)%26+97-j < 0:
                        tile[i] += chr((N-j)%26+97)
                    else:
                        tile[i] += chr((N-123)%26+97-j)
                else:
                    tile[i] += chr(96+N-j)
        tile[i] += tile[i][:-1][::-1]
    else:
        tile[i] += tile[i-2*c]
        c += 1

for i in range(R2+1):
    for j in range(0,C2,2*N-1):
        w_tile[i] += tile[i%len(tile)][0:j]
    w_tile[i] += tile[i%len(tile)][0:C2-j+1]

w_tile = w_tile[R1:]
for i in range(len(w_tile)):
    w_tile[i] = w_tile[i][C1:]

print '\n'.join(w_tile)