SW Academy

[CNU SW Academy] 38일차(23.01.25)

narlo 2023. 1. 25. 17:57

프로그래머스 - 프론트엔드 미니 데브코스

upload 컴포넌트

<input type="file" />

단점은 꾸밀수가 없다는 것

=> toggle을 이용하여 숨기고 다른 스타일을 보여줄 수 있다.

onDrop, onDragEnter, onDragLeave, onDragOver 이벤트를 이용하여 파일드롭을 구현할 수 있다.

- preventDefault를 이용하여 브라우저 기본 이벤트를 막고,

- stopPropagation을 이용하여 부모나 자식 컴포넌트로 이벤트가 전파되는 것을 막는다.

 

Badge 컴포넌트

sns에서 알림 등이 왔을 때 알림이 몇개가 쌓였는지 확인할 수 있는 UI를 Badge라고 부른다.

maxCount, showZero prop을 이용하여

100 이상인 경우 100+로 표현하거나,

0인 경우 표시되지 않도록 구현할 수 있다.

 

ICON LIBRARY 

feather

https://feathericons.com/

 

Feather – Simply beautiful open source icons

Feather is a collection of simply beautiful open source icons. Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency and readability.

feathericons.com

라이브러리 설치

npm i feather-icons --save
npm i buffer

 

Avatar 컴포넌트

사용자의 프로필을 나타낼때 쓰임

sns같은 커뮤니티 서비스에서 많이 사용됨

 

Slider 컴포넌트

볼륨 조절, 비디오 재생바 등에 많이 사용


Git을 활용한 협업(3) - 이현진 TA

브랜치(branch)

코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데,

이렇게 독립적으로 개발하는 것이 브랜치이다.  

 

브랜치 생성하기

git branch 브랜치명

새로 만든 브랜치는 지금 작업하고 있던 마지막 커밋을 가리킨다.

HEAD라는 특수한 포인터 : 지금 작업하는 로컬 브랜치 가리킴

 

git log --decorate : 브랜치가 어떤 커밋을 가리키고 있는지 확인할 수 있다.

 

브랜치 이동하기

git checkout 브랜치명

HEAD가 해당 브랜치를 가리킨다.


코딩테스트

윷놀이

arr = [int(i) for i in list(input())]

move = [5, 1, 2, 3, 4]
print(move[arr.count(1)])

세뱃돈

n = int(input())
a = list(map(int, input().split(" ")))
sorted_a = sorted(a)

for i in range(n):
    left = sorted_a.index(a[i])
    print(left, n - left - 1)

개미탈출 4

def beatable(ATK_J, HP_J, ATK_M, HP_M):
    while True:
        HP_M -= ATK_J
        if HP_M <= 0: return True
        HP_J -= ATK_M
        if HP_J <= 0: return
    
def clear(S, M, ATK_J, HP_J, ATK_M, HP_M):
    for here in S:
        if here == 'O': return True
        if here == '#':
            if M == 0: return False
            M-=1
        if here == '&':
            if not beatable(ATK_J, HP_J, ATK_M, HP_M):
                return False
    return False

t = int(input())
for i in range(t):
    n, m = map(int, input().split())
    s = input()
    
    ATK_J, HP_J = map(int, input().split())
    ATK_M, HP_M = map(int, input().split())
    
    JS = s.index('@')   #준식이의 위치
    
    L, R = s[:JS], s[JS:]
    L = reversed(L)
    
    F = clear(L, m, ATK_J, HP_J, ATK_M, HP_M) or clear(R, m, ATK_J, HP_J, ATK_M, HP_M)
    
    print("HAHA!" if F else "HELP!")

준식이의 위치를 기준으로 왼쪽, 오른쪽을 나누어 각각 가능한지 여부를 판단한다.

 

준식이의 모험2

test = int(input())

def dir(x):
    return "LRUD".index(x)

dr = [0, 0, -1, 1]
dc = [-1, 1, 0, 0]

def move(r, c, x):
    d = dir(x)
    nr, nc = r + dr[d], c + dc[d]
    
    return nr, nc

def inRange(r, c, n, m):
    return 0 <= r < n and 0 <= c < m

def index(s):
    for j in range(len(s)):
        if '@' in s[j]:
            return j, s[j].index('@') 

ret = []
for i in range(test):
    n, m = map(int, input().split())
    s = [input() for i in range(n)]
    
    k = int(input())
    t = input()
        
    row, col = index(s)
    damaged = 0
    
    for j in range(k):
        nr, nc = move(row, col, t[j])
        
        if inRange(nr, nc, n, m) and s[nr][nc] != '#':
            row, col = nr, nc
            
        if s[row][col] == '^':
            damaged += 1
            
    ret.append((row, col, damaged))
    
for r, c, damaged in ret:
    print(r+1, c+1, damaged)

지금 무슨 노래 듣고 있어요? 2

n = int(input())
a = [input() for i in range(n)]
b = [int(input()) for i in range(n)]

m = int(input())
q = [int(input()) for i in range(m)]

t =  [0] * 3001 # 300초 * 10개
p = 1

for i in range(n):
    for j in range(b[i]):
        t[p] = i
        p += 1
        
p -= 1

for i in range(m):
    x = t[(q[i] - 1) % p + 1]
    print(a[x])

 

'SW Academy' 카테고리의 다른 글

[CNU SW Academy] 40일차(23.01.27)  (0) 2023.01.27
[CNU SW Academy] 39일차(23.01.26)  (1) 2023.01.26
[CNU SW Academy] 37일차(23.01.20)  (0) 2023.01.25
[CNU SW Academy] 36일차(23.01.19)  (0) 2023.01.19
[CNU SW Academy] 35일차(23.01.18)  (0) 2023.01.18