algorithm/problem solving

acmicpc.net 1213(팰린드롬), 8892(팰린드롬), 1924

qkqhxla1 2016. 8. 27. 16:23

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

# -*- encoding: cp949 -*-
n_list = [0 for i in xrange(26)]
name = raw_input()
for c in name:
    n_list[ord(c)-65] += 1
 
answer = ''
flag = True
if len(name)%2==0:
    for i in xrange(26):
        if n_list[i]%2==1:
            print "I'm Sorry Hansoo"
            flag = False
            break
    if flag:
        for i in xrange(26):
            if n_list[i] > 0:
                for j in xrange(n_list[i]/2):
                    answer += chr(i+65)
        print answer+answer[::-1]
else:
    odd = ''
    for i in xrange(26):
        if n_list[i]%2==1:
            odd += chr(i+65)
            if len(odd) > 1:
                print "I'm Sorry Hansoo"
                flag = False
                break
    if flag:
        for i in xrange(26):
            if n_list[i] > 0:
                for j in xrange(n_list[i]/2):
                    answer += chr(i+65)
 
        print answer+odd+answer[::-1]

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

# -*- encoding: cp949 -*-
t = int(raw_input())
answer = []
for i in xrange(t):
    test = [raw_input() for i in xrange(int(raw_input()))]
    z_flag = True
    end = False
    for j in xrange(len(test)):
        if end: break
        for k in xrange(len(test)):
            if j!=k:
                new = test[j]+test[k]
                flag = True
                for l in xrange(len(new)/2):
                    if new[l] != new[len(new)-1-l]:
                        flag = False
                        break
                if flag:
                    answer.append(new)
                    z_flag = False
                    end = True
                    break
    if z_flag:
        answer.append('0')
print '\n'.join(answer)

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

# -*- encoding: cp949 -*-
import datetime
d = {0:'MON',1:'TUE',2:'WED',3:'THU',4:'FRI',5:'SAT',6:'SUN'}
x,y = map(int,raw_input().split())
print d[datetime.date(2007,x,y).weekday()]