프로그래머스 132

[프로그래머스, 파이썬] 달리기 경주

풀이 간단하게 풀이를 하려 하니 시간초과가 생겨서 딕셔너리를 사용하여 해결할 수 있도록 함. 그리고 dic의 값을 기준으로 정렬해서 키를 보여주는 건 sorted의 key를 dic.get으로 주니까 되는걸 알게 됨 def solution(players, callings): dic = {players[i]:i for i in range(len(players))} for i in callings: idx = dic[i] dic[i] -= 1 dic[players[idx-1]] += 1 players[idx],players[idx-1] = players[idx-1],players[idx] return sorted(dic,key=dic.get)

알고리즘 2024.02.19

[프로그래머스, 파이썬] 공원 산책

풀이 코드가 길어질 수 밖에 없는 문제... 물론 짧게 만든다면야 만들겠지만 크게 효율과 가독성이 좋지 않아 아래와 같이 풀이 routes로 받아온 값에 따라 op 방향으로 n 만큼 한칸씩 이동해보며 장애물인지 확인하고, 장애물일 경우 반복문 탈출 이전에 op 방향 조건 분기와 동시에 최종으로 이동할 곳이 배열 범위에서 벗어나지 않는지 확인하면 해결 def solution(park, routes): for i in range(len(park)): for j in range(len(park[i])): if park[i][j] == "S": y,x = i,j for k in routes: op,n = k.split() n = int(n) state = True if op == "E" and x+n = 0: ..

알고리즘 2024.02.19

[프로그래머스, 파이썬] 옹알이(1)

풀이 슬라이싱을 활용해서 단어 안에 word의 단어가 포함하는지 확인하도록 함 단어가 없다면 break를 통해 탈출하여 간단하게 문제해결 def solution(babbling): answer = 0 for i in range(len(babbling)): b_ln = len(babbling[i]) if b_ln s: if b_ln >= s+3 and babbling[i][s:s+3] in word: print(babbling[i][s:s+3]) word.remove(babbling[i][s:s+3]) s += 3 elif babbling[i][s:s+2] in word: print(babbling[i][s:s+2]) word.remove(babbling[i][s:s+2]) s += 2 else: stat..

알고리즘 2024.02.16

[프로그래머스] 조건에 맞는 사용자 정보 조회하기

-- SUBSTRING 메서드를 활용해 문자열 슬라이싱을 할 수 있으며 -- CONCAT 시 다른 요소와 구분해야 한다면 꼭 ' '를 추가해 빈칸을 만들어 주기! SELECT T2.USER_ID, T2.NICKNAME, CONCAT(T2.CITY, ' ', T2.STREET_ADDRESS1, ' ', T2.STREET_ADDRESS2) AS 전체주소, CONCAT(LEFT(T2.TLNO, 3), '-', substring(T2.TLNO, 4, 4), '-', SUBSTRING(T2.TLNO, 8, 4)) AS 전화번호 FROM USED_GOODS_BOARD T1 JOIN USED_GOODS_USER T2 ON T1.WRITER_ID = T2.USER_ID GROUP BY T1.WRITER_ID HAVIN..

SQL 2023.07.19