목록분류 전체보기 (310)
가오리의 코딩일기
import sys sys.setrecursionlimit(10000) # 재귀 한도 풀어주기 def dfs(start): visited[start] = True node = graph[start] if not visited[node]: dfs(node) testCase = int(sys.stdin.readline()) for _ in range(testCase): n = int(sys.stdin.readline()) graph = [0] + list(map(int, sys.stdin.readline().split())) visited = [True] + [False] * n result = 0 for i in range(1, n+1): if not visited[i]: dfs(i) result += 1..
import sys from collections import deque def bfs(start): queue = deque([start]) visited[start] = True while queue: node = queue.popleft() for i in graph[node]: if not visited[i]: queue.append(i) visited[i] = True n,m = map(int, sys.stdin.readline().split()) graph = [ [] for _ in range(n+1)] for _ in range(m): u, v = map(int, sys.stdin.readline().split()) graph[u].append(v) graph[v].append(u) vis..
💡 간단한 HTTP API를 구축하는 과정 🧩 app.py 더보기 from flask import Flask app = Flask(__name__) """ POST: 클라이언트가 보낸 데이터를 받는 데에 사용 GET: 데이터를 다시 돌려주는 데에만 사용 /shop : 새로운 shop을 생성하거나 shop 목록을 보여준다 /shop/smith-flower-shop : shop들 중, smith-flower-shop이라는 이름을 가진 것을 보여준다 /shop/smith-flower-shop/item : smith-flower-shop에 새로운 item을 생성하거나 smith-flower-shop에 있는 item들 목록을 보여준다 """ # POST /shop : name이라는 데이터를 받아서 새로운 shop..
Object.keys, values, entries Object.keys, values, entries ko.javascript.info 🧩 문제 Q1. 프로퍼티 값 더하기 급여 정보가 저장되어있는 객체 salaries가 있습니다. Object.values와 for..of 반복문을 사용해 모든 급여의 합을 반환하는 함수 sumSalaries(salaries)를 만들어보세요. salaries가 빈 객체라면, 0이 반환되어야 합니다. function sumSalaries(salaries){ let sum = 0; for (let salary of Object.values(salaries)) { sum += salary; } return sum; } let salaries = { "John": 100, "Pe..
메서드와 this 메서드와 this ko.javascript.info ✏️ 메서드 단축 구문 user = { sayHi: function() { alert("Hello"); } }; user = { sayHi() { alert("Hello"); } }; 🧩 문제 Q1. 객체 리터럴에서 ‘this’ 사용하기 함수 makeUser는 객체를 반환합니다. 이 객체의 ref에 접근하면 어떤 결과가 발생하고, 그 이유는 뭘까요? function makeUser() { return { name: "John", ref: this }; }; let user = makeUser(); alert( user.ref.name ); → 에러 발생 밑의 코드처럼 수정하면 된다 function makeUser() { return {..
객체 객체 ko.javascript.info ✏️ 상수 객체는 수정할 수 있다 → 4번째 줄에서 오류를 일으키는 것처럼 보일 수 있지만 그렇지 않다 → const는 user의 값을 고정하지 그 내용을 고정하지 않는다 const nuser = { name: "John" }; user.name = "Pete"; alert(user.name); ✏️ 계산된 프로퍼티(computed property) → 객체를 만들 때 객체 리터럴 안의 프로퍼티 키가 대괄호로 둘러싸여 있는 경우 → [1+4] 혹은 [’Hello’ + ‘World’]와 같은 식 자체가 들어가는 것도 가능하다 let fruit = prompt("어떤 과일을 구매하시겠습니까?", "apple"); let bag = { [fruit]: 5 }; al..
🧩 객체란? → 자바스크립트는 객체 기반의 프로그래밍 언어이다 → 원시 값을 제외한 나머지 값(함수, 배열 등)은 모두 객체 → 원시 값은 변경 불가능한 값(immutable value), 객체는 변경 가능한 값(mutable value) 추가적인 설명은 11장에서 → 객체는 0개 이상의 프로퍼티로 구성된 집합 const person = { name: 'Lee', // 프로퍼티 age:20 // 프로퍼티 키(age), 프로퍼티 값(20) }; → 프로퍼티 키: 빈 문자열을 포함하는 모든 문자열 또는 심벌 값 → 프로퍼티 값: 자바스크립트에서 사용할 수 있는 모든 값 🧩 객체 리터럴에 의한 객체 생성 → 클래스 기반 객체지향 언어(C++, 자바): 클래스를 사전에 정의, 필요 시점에 new와 함께 생성자를..
import sys string = list(input()) stringList = [] n = int(input()) for i in range(n): command = sys.stdin.readline().split() if command[0] == "L" and string: stringList.append(string.pop()) elif command[0] == "D" and stringList: string.append(stringList.pop()) elif command[0] == "B" and string: string.pop() elif command[0] == "P": string.append(command[1]) print("".join(string + list(reversed(st..
n, k = map(int, input().split()) result = [] numberList = [i for i in range(1, n+1)] number = 0 for i in range(n): number += (k-1) if number >= len(numberList): number %= len(numberList) result.append(str(numberList[number])) numberList.pop(number) print("", sep="")