나의 풀이

def solution(n, arr1, arr2):
    a = [arr1[i] | arr2[i] for i in range(n)]
    result = []
    for i in a:
        cur = ""

        for j in str(bin(i))[2:]:
            if j == "1":
                cur += "#"
            else:
                cur += " "
        result.append((n - len(cur)) * " " + cur)

    return result

 

참고할만한 코드

def solution(n, arr1, arr2):
    answer = []
    for i,j in zip(arr1,arr2):
        a12 = str(bin(i|j)[2:])
        a12=a12.rjust(n,'0')
        a12=a12.replace('1','#')
        a12=a12.replace('0',' ')
        answer.append(a12)
    return answer

 

 

rjust, ljust, zfill 함수를 이용해 공백을 자동으로 메워줄 수 있다!

https://www.crocus.co.kr/1660

나의 답안

from itertools import combinations

def find(n):
    for i in range(2, int(n * .5) + 1):
        if n % i == 0:
            return False
    return True


def solution(nums):
    data = []
    count = 0
    
    for i in combinations(nums, 3):
        data.append(sum(i))
            
    for i in data:
        if find(i):
            count += 1
    return count

나의 답안

def solution(s):
    answer = list(s)
    count = 0
    for i in range(len(s)):
        if s[i] == " ":
            count = 0
            continue
        else:
            if count % 2 == 0 or count == 0:
                answer[i] = answer[i].upper()
            else:
                answer[i] = answer[i].lower()
        count += 1

    return "".join(answer)

 

살펴볼만한 답안

def toWeirdCase(s):
    return " ".join(map(lambda x: "".join([a.lower() if i % 2 else a.upper() for i, a in enumerate(x)]), s.split(" ")))

나의 코드 

def solution(s, n):
    s = list(s)
    for i in range(len(s)):
        if s[i].isupper():
            s[i] = chr((ord(s[i]) - ord('A') + n) % 26 + ord('A'))
        elif s[i].islower():
            s[i] = chr((ord(s[i]) - ord('a') + n) % 26 + ord('a'))
    return "".join(s)

 

따로 공백을 처리 해주려고 했는데 list의 isupper, islower 함수를 사용하면 편하다.

+ Recent posts