| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- Python
- WarGame
- webhacking.kr
- 파이썬
- 알고리즘
- BaekJoon
- 문제풀이
- CSRF
- 웹해킹
- 인프런
- c
- 풀이
- 포렌식
- 디지털 포렌식
- Web
- 프로그래머스
- 자라나는새싹
- 자라나는 새싹
- XSS
- C언어
- Algorithm
- 드림핵
- hacking
- WHS
- 스터디
- Programmers
- 백준
- 워게임
- dreamhack
- command
- Today
- Total
목록Algorithm (42)
Hoin's security
오늘도 C언어로 문제를 풀이해보겠다. 문제는 위와 같고 1주차와 같은 로직으로 풀이해봤다. 그러나 출력값이 달랐고 그 이유는 형변환이 되지 않았기 때문이다. 변수가 int형이면 저장값 뿐만 아닌 계산도 정수형으로 되는 것 같다. 앞에 float 형태를 붙여주어 num1의 강제 형 변환이 되게끔 하였고 이에 따라 num2또한 암시적으로 형변환이 되어 실수 연산이 될 수 있게 했다. 형변환을 사용한 문제풀이 성공적으로 마무리했다.
C언어로 풀이를 진행한다. 문제는 위와 같고 로직은 앞서 올린 두 수의 합, 차 와 비슷하다. 먼저 변수 num1, num2가 주어졌으니 이에 대한 값을 scanf로 입력받아서 저장하도록 코드를 만들어준다. 변수를 띄어쓰기로 구분해 입력한다는 가정을 두고 입력받는 것을 띄어쓰기로 구분해서 받았다. 코드 실행이 정상적으로 작동했으니 코드 제출 후 채점을 진행한다. 성공적이다.
C언어로 문제풀이를 진행한다. 앞서 작성한 글인 두 수의 덧셈과 비슷하게 진행된다. 여기에서는 answer의 값이 0으로 편안하게 입력되어있다. 먼저 변수 num1, num2가 주어졌으니 이에 대한 값을 scanf로 입력받아서 저장하도록 코드를 만들어준다. 변수를 띄어쓰기로 구분해 입력한다는 가정을 두고 입력받는 것을 띄어쓰기로 구분해서 받았다. 코드 실행 후 정상적으로 작동하는 지 확인하고 제출 후 채점을 진행한다. 성공적이다.
문제 1과 이어서 프로그래머스 문제풀이를 C언어로 진행한다. 변수 answer값이 왜 -1로 되어있는지 모르겠다. 그래서 값을 0으로 수정해주었다. 변수 num1, num2가 주어졌으니 이에 대한 값을 scanf로 입력받아서 저장하도록 코드를 만들어준다. 변수를 띄어쓰기로 구분해 입력한다는 가정을 두고 입력받는 것을 띄어쓰기로 구분해서 받았다. 코드 실행 후 잘 작동 되는지 확인했다. 제출 및 채점 결과 성공이다.
프로그래머스 문제풀이를 진행해본다. 이번에 사용할 언어는 C언어이다. 먼저 변수 num1, num2가 주어졌으니 이에 대한 값을 scanf로 입력받아서 저장하도록 코드를 만들어준다. 변수를 띄어쓰기로 구분해 입력한다는 가정을 두고 입력받는 것을 띄어쓰기로 구분해서 받았다. 코드를 실행했더니 제대로 실행되길래 제출 후 채점 버튼을 눌러줬다. (+여기서 의문 : scanf에서 변수앞에 &를 적지 않아주었는데 왜 실행이 되었을까? -아래에 &에 대한설명을 추가해두었다.) 성공하니 기분이 좋다. -&(ampersand)란? 해당 변수의 주소를 가르킨다. 변수 a의 값이 10이라고 하면 주소는 그 값이 존재하는 위치를 뜻한다. 그 주소가 0111이라고한다면 &a 는 10이 아닌 0111을 뜻한다. -왜 scanf..
파이썬으로 배열을 사용해서 코드를 작성했다. num_list = list(map(int, input().split())) num_list.sort() print(num_list[1]) 예제가 잘 출력되는지 확인하고 제출한다. 완료! 다음문제로 넘어간다. for T in range(int(input())): dic = {} max = 0 for N in range(int(input())): st, L = input().split() dic[L] = st for l in dic.keys(): if int(max)
오늘은 백준 2476번, 22966번 문제풀이를 진행해본다. for문에서 범위를 설정해서 코드를 짜면 될 거 같다. N=int(input()) big=0 #바로 비교하는 코드를 짜면 0으로 초기값을 설정해주기. for i in range(N): a,b,c=map(int,input().split()) if a==b==c: big=max(big, 10000+a*1000) elif a==b: big=max(big, 1000+a*100) elif b==c: big=max(big, 1000+a*100) elif c==a: big=max(big, 1000+a*100) else: big=max(big,max(a,b,c)*100) print(big) 이번 코드에서 주의깊게 볼 부분은 max() 함수인 것 같다. c=m..
파이썬의 딕셔너리를 이용해서 코드를 짜보려고 한다. 딕셔너리는 Key와 Value를 한 쌍으로 갖는 자료형이다. credit_list = {'A+':'4.3', 'A0':'4.0', 'A-':'3.7', 'B+':'3.3', 'B0':'3.0', 'B-':'2.7', 'C+':'2.3', 'C0':'2.0', 'C-':'1.7', 'D+':'1.3', 'D0':'1.0', 'D-':'0.7', 'F':'0.0'} credit = input() print(credit_list[credit]) 학점 리스트는 credit_list로 이름 지었고, 입력 받는 학점은 credit이라고 변수를 만들었다. 입력받은 학점에 대응하는 값을 출력한다. 예제에 맞게 정상적으로 작동한다. 성공적으로 2754번을 풀이했다. 이..
오늘은 백준 2163 문제로 시작한다. 2163번 문제는 초콜릿의 쪼개는 횟수의 최솟값을 출력하는 것이다. 겹쳐서 쪼개는 것이 아니므로 6조각이면 앞에서부터 하나하나 쪼개어 나간다고 생각하면 5번 쪼개게 되는 것이다. n,m = map(int,input().split()) print((n*m)-1) 오늘도 어김없이 파이썬으로 작성해본다. N과 M값을 n,m변수로 입력받아주고 쪼개지는 조각에서 1을 뺀 값을 출력해주면 된다. 예제를 입력했을 때 알맞은 출력값이 나오는걸 확인한다. 맞았다고 나온다. 이제 2525번 문제를 풀어보자. hour,min = map(int,input().split()) time=int(input()) min+=time if min>=60: hour+=min//60 min%=60 i..
백준 11382번 문제 먼저 풀이해보겠다. 오늘도 파이썬을 활용해서 코드를 작성해본다. map 과 split 함수에 대한 설명은 1주차 알고리즘 블로그에 있다. map과 split을 활용하여 띄어쓰기로 값을 분리하여 입력 받았다. 예제에 주어진 값을 입력하니 제대로 출력된다. 코드를 복사하여 제출한다. 성공적. 이제 10869 문제를 마저 풀어본다. \n을 활용하여 줄바꿈을 해주었다. 그러나 앞에 공백이 생기면서 출력값이 동일하지 않다는 결과가 나왔다. print()를 반복하여 써주면서 공백없이 알맞은 결과값을 얻었다. lstrip를 사용해 왼쪽 공백을 지워보려했다. 그러나 오류가 발생. 그 이유는 lstrip는 문자열에만 작동하는 함수인데 연산자를 사용하는 것은 문자열이 아니므로 각각 사칙연산 계산값을..